需求
在promise中的某一步骤发生错误的时候,终止往下执行并跳出promise。
关键点
throw、catch
代码
reject之后只是将结果返回,而程序并不会因此停止,所以会输出2。而throw之后,上层函数收到错误后会中断程序,因此没有输出5。
var a = function () {
return new Promise((resolve, reject) => {
reject(1);
console.log(2);
}).catch((e) => {
console.log(e);
throw 3;
});
};
var b = async function () {
await a().catch((e) => {
console.log(e);
throw 4;
});
console.log(5);
};
(async () => {
await b().catch((e) => {
console.log(e);
});
})();
// 2
// 1
// 3
// 4