由于字数限制……只能搞成图片了。然后还不知道我说的对不对…… 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

相关推荐

喜欢疯狂星期四的猫头鹰在研究求职打法:短作业优先
点赞 评论 收藏
分享
牛客网
牛客企业服务