2019-01-06
回答
Promise
对象用于表示一个异步操作的最终状态(完成或失败)及其返回值。他有以下几种状态:
- pending:初始状态,完成或失败状态的前一个状态
- fulfilled:操作成功完成
- rejected:操作失败
pending 状态的 Promise 对象会触发 fulfilled/rejected 状态,在其状态处理方法中可以传入参数/失败信息。当操作成功完成时,Promise 对象的 then
方法就会被调用;否则就会触发 catch
。如:
const myFirstPromise = new Promise((resolve, reject) => { setTimeout(function(){ resolve("成功!"); }, 250); }); myFirstPromise.then((data) => { console.log("Yay! " + data); }).catch((e) => {...});
加分回答
异步编程还包含了以下几种
- 回调函数,如:
$('body).click(() => { alert(`clicked on body`); });
- generator,如:
function * gen (x) { const y = yield x + 2; } const g = gen(1); console.log('first', g.next()); // { value: 3, done: false } console.log('second', g.next()); // { value: undefined, done: true }
- Async/Await
async function readJsonFile() { try { const file = await readFile('../generator/config.json'); console.log(file.toString()); } catch (e) { console.log('出错啦'); } }
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于