从一句 “await必须在asnyc函数中使用,await后面接的是Promise对象”中大致可以看出他们三者的关系,即await是asnyc的衍生品,用来处理Promise对象。
1、Promise对象
官方解释:
Promise
是一个对象,它代表了一个异步操作的最终完成或者失败。因为大多数人仅仅是使用已创建的 Promise 实例对象,所以本教程将首先说明怎样使用 Promise,再说明如何创建 Promise。本质上Promise是一个函数返回的对象,我们可以在它上面绑定回调函数,这样我们就不需要在一开始把回调函数作为参数传入这个函数了。
new Promise((resolve, reject) => {
console.log('初始化');
resolve();
})
.then(() => {
throw new Error('有哪里不对了');
console.log('执行「这个」”');
})
.catch(() => {
console.log('执行「那个」');
})
.then(() => {
console.log('执行「这个」,无论前面发生了什么');
});
输出结果:
初始化
执行“那个”
执行“这个”,无论前面发生了什么
Promise对象中有两个参数,一个