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