内容更新于: 2022-10-11 03:17:14
promise
前言:记录关于promise的一切哦。
从一道题目开始
Promise.resolve()
.then(() => {
console.log(0);
return Promise.resolve(4);
}).then((res) => {
console.log(res)
});
Promise.resolve()
.then(() => {
console.log(1);
})
.then(() => {
console.log(2);
})
.then(() => {
console.log(3);
})
.then(() => {
console.log(5);
})
.then(() => {
console.log(6);
});
结果:
0 1 2 3 4 5 6
1.首先将 p.then(fn) 中的fn放入微任务队列。即:pros0 pros1
2.pros0 的状态由 返回的 prosr4 决定。所以微任务队列 pros0 pros1 prosr4.then(cb); cb:完成p0
3.执行微任务队列之后 结果:0 1 ,其中执行p1之后将p2 推入队列
4.执行prosr4.then(cb)之后将 cb 推入队列,即:p2 cb
5.执行微任务队列: 2 ; 队列变成 p3 p4
6.所以结果是 0 1 2 3 4 5 6
// todo
本文结束
