前言
本文已代码解读的方式来学习整个过程。这里提供了五段代码,如果你都能理解清楚,完全正确的说出 output 过程,那么厉害大牛如你,我在这里给你竖个大拇指,祝贺你对 Promise 的执行过程已经了如指掌。
当然可能你也未必真正了解核心,能正确的理解和解释这个过程,不妨看看题目的解释。
当然如果是和我一样的菜鸟,那么我们就一起来看看吧~
看答案前,先自己默默算下输出结果吧。
第一段代码
new Promise((resolve, reject) => {
console.log("外部promise");
resolve();
})
.then(() => {
console.log("外部第一个then");
return new Promise((resolve, reject) => {
console.log("内部promise");
resolve();
})
.then(() => {
console.log("内部第一个then");
})
.then(() => {
console.log("内部第二个then");
});
})
.then(() => {
console.log("外部第二个then");
});
这个输出还是比较简单的,外部第一个 new Promise 执行,执行完 resolve ,然后执行外部第一个 then 。外部第一个 then 方法里面 return 一个 Promise,这个 return ,代表 外部的第二个 then 的执行需要等待 return 之后的结果。当然会先执行完内部两个 then 之后,再执行 外部的第二个 then ,机智如你,完全正确。
output:
外部promise
外部第一个then
内部promise
内部第一个then
内部第二个then
外部第二个then