浏览器的事件循环机制

117 阅读1分钟
Tasks queue 宏任务队列
Microtasks queue 微任务队列
Js同步代码 需要压栈 cpu执行 出栈 是在JS stack 中的
Task 需要加入到Tasks queue中 先进先出原则
Microtasks 需要加入到 Microtasks queue 中 也是先进先出原则
执行的顺序:
同步代码按顺序压栈出栈执行
遇到异步代码 判断是宏任务还是微任务 放入不同的队列
当JS stack 也就是执行栈是空的时候 先去执行微任务队列 Microtasks queue
微任务队列为空之后 去执行宏任务队列。
值得注意的是 微任务队列是可以动态添加的。添加到队列尾部,并且执行。

以上是我看了几个文章总结得出的。没有代码,后边有时间上代码验证一下。

[https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/?utm_source=html5weekly](https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/?utm_source=html5weekly)

juejin.cn/post/688165…

juejin.cn/post/688498…