【一些有趣的问题】02,事件循环
以下语句会如何输出?
1 | console.log('start') |
结果:打印 start promise end then1 then2 setTimeout
原因:简单来说,JS 代码的执行顺序为:同步代码–>异步代码(微任务–>宏任务)
分析:
打印 start
setTimeout 加入消息队列
new Promise 的同步部分执行,打印 promise,then 部分加入消息队列
打印 end
消息队列中先处理微任务 then 的部分,打印 then1,then2
消息队列处理宏任务 setTimeout,打印 setTimeout
参考资料
- 感谢您的赞赏
赞赏名单
由于您的支持,我才能够实现写作的价值。
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自ped-Yc's Blog