Javascript 事件循环

事件循环:Javascript是单线程的,但是又需要一种机制来处理多个块的执行。

且执行每个块时调用Javascript引擎,这种机制称为事件循环,与事件绑定概念毫无关系。

事件循环分了部分:主线程、宏队列、微队列,异步代码都会被丢进宏/微队列

  • 宏任务:script, setTimeout, setInterval, setImmediate, I/0, UI rendering
  • 微任务:process.nextTick, promise. then(), object.observe, Mutationobserver

主线程只有一个,且执行顺序为:

  • 1、先执行主线程
  • 2、遇到宏任务放到宏队列
  • 3、遇到微任多放到微队列
  • 4、主线程执行完毕
  • 5、优先执行微队列,微队列执行完毕
  • 6、执行一次宏队列的任务,执行完毕
  • 7、执行微队列,执行完毕
  • 8、依次循环。。

两个队列可以理解为两个数组,不停执行两个数组里面的东西,空了就不执行。

比较通俗的理解: https://www.bilibili.com/video/BV1om4y1F7jb

练习题参考:https://juejin.cn/pin/7183132179717685307


Javascript 事件循环
http://seddon.lol/2023/01/06/Javascript-事件循环/
作者
Seddon
发布于
2023年1月6日
许可协议