共计 462 个字符,预计需要花费 2 分钟才能阅读完成。
最近对 Event loop 比较感兴趣,所以了解了一下。但是发现整个 Event loop 尽管有很多篇文章,但是没有一篇可以看完就对它所有内容都了解的文章。大部分的文章都只阐述了浏览器或者 Node 二者之一,没有对比的去看的话,认识总是浅一点。所以才有了这篇整理了百家之长的文章。
目录
- 定义
- 意义
- 浏览器上的实现
- Node 上的实现
- 示例
- 浏览器与 Node 执行顺序的区别
- 不同异步任务执行的快慢
- MicroTask 队列与 MacroTask 队列
总结
综上,关于最关键的顺序,我们要依据以下几条规则:
1. 同一个上下文下,MicroTask 会比 MacroTask 先运行
2. 然后浏览器按照一个 MacroTask 任务,所有 MicroTask 的顺序运行,Node 按照六个阶段的顺序运行,并在每个阶段后面都会运行 MicroTask 队列
3. 同个 MicroTask 队列下 process.tick() 会优于 Promise
Event loop 还是比较深奥的,深入进去会有很多有意思的东西,有任何问题还望不吝指出。
链接
正文完