关注
由于字数限制……只能搞成图片了。然后还不知道我说的对不对……
1、执行第一行
Promise.resolve()
微任务【 promise1的第一个then 】
2、执行第5行
new Promise(resolve => {
setTimeout(() => {
console.log(6)
resolve()
})
})
setTimeout加入到宏队列
宏队列【 L6:setTimeout 】
微任务【 promise1的第一个then 】
3、执行第19行
let promise3 = Promise.resolve()
then加入微任务
宏队列【 L6:setTimeout 】
微任务【 promise1的第一个then、promise3的第一个then 】
4、执行main()
5、输出console.log(4)
当前输出【 4 】
6、碰到await,弹出执行栈,返回一个Promise对象
typeof Promise.all([]) == 'object'
输出object
当前输出【 4 object 】
7、等待 Promise.all执行完毕再执行后面的 console.log(5)后面的代码
await下面的代码只有当await后面的promise返回结果后才可以执行
8、开始执行微任务
微任务【 promise1的第一个then、promise3的第一个then 】
9、执行promise1的第一个then
输出console.log(1)
当前输出【 4 object 1 】
宏队列【 L6:setTimeout 】
微任务【 promise3的第一个then、promise1的第二个then 】
10、执行promise3的第一个then
输出console.log(8)
当前输出【 4 object 1 8 】
宏队列【 L6:setTimeout 】
微任务【 promise1的第二个then、promise3的第二个then 】
11、执行promise1的第二个then
输出console.log(2)
当前输出【 4 object 1 8 2 】
宏队列【 L6:setTimeout 】
微任务【 promise3的第二个then 】
查看原帖
点赞 3
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 面试问题记录 #
48333次浏览 718人参与
# 你遇到过哪些神仙同事 #
70625次浏览 635人参与
# 京东TGT #
42881次浏览 164人参与
# 实习生应该准时下班吗 #
200647次浏览 1310人参与
# 我的2024小目标 #
57757次浏览 386人参与
# 百度工作体验 #
204054次浏览 1903人参与
# 工作一周年分享 #
17852次浏览 109人参与
# 面试经验谈 #
32371次浏览 441人参与
# 面试吐槽bot #
10079次浏览 66人参与
# 入职第五天,你被拉进了几个工作群 #
16670次浏览 80人参与
# 假如我穿越到了妈妈的18岁 #
4717次浏览 38人参与
# 提前批过来人的忠告 #
99018次浏览 1095人参与
# 国企和大厂硬件兄弟怎么选? #
119837次浏览 1655人参与
# 追觅科技求职进展汇总 #
14507次浏览 100人参与
# 机械人,你的第一份感谢信是谁给的 #
25605次浏览 296人参与
# 请用你的专业向妈妈表白 #
9292次浏览 78人参与
# 贝壳求职进展汇总 #
19852次浏览 140人参与
# 零跑求职进展汇总 #
4389次浏览 17人参与
# 硬件人秋招的第一个offer #
69231次浏览 1085人参与
# bilibili求职进展汇总 #
57776次浏览 577人参与
# 对妈妈没说出口的话 #
22621次浏览 463人参与