事件循环机制

79 阅读1分钟

原文:mp.weixin.qq.com/s/B2TPyvwgI…

事件循环是指 js中各种同步异步任务按照某种顺序执行的机

JS是单线程的,并维护两个任务队列,宏任务队列和微任务队列

浏览器端的事件循环执行顺序按照下面三个大步骤进行:

  1. JS首先从宏任务队列中取出一个任务执行
  2. 执行完毕,再取出微任务队列的所有微任务,注意是所有
  3. 检查是否到了渲染时间,如果是,则触发渲染操作 至此一个简单的事件循环就结束了。之后再开启下一个事件循环,返回第一步,周而复始的重复这三个步骤。

宏任务:

  1. setTimeout
  2. setInterval
  3. I/O事件
  4. UI渲染
  5. script代码块
  6. setImmdiate

微任务:

  1. Promise的then和catch回调
  2. MutationObserver
  3. process.nextTick