js事件循环机制

浏览器中的事件循环机制

javascript代码的执行过程中,除了依靠函数调用栈来搞定函数的执行顺序外,还依靠任务队列来搞定对另外一些代码的执行。整个执行过程,我们称为事件循环过程。

一个线程中,事件循环是唯一的,但是任务队列可以拥有多个。任务队列又分为宏任务(macro- task)和微任务(micro-task),在最新标准中,它们又被称为tasks与jobs:

macro-task(宏任务)包括:

  • script(整体代码)
  • setTimeout
  • setInterval
  • setImmediate
  • I/O
  • UI/render

micro-task(微任务)包括:

  • process.nextTick
  • Promise
  • Async/Await
  • html5新特性(MutationObserver)

总结:

执行宏任务-执行该宏任务产生的微任务-若微任务执行过程中产生了新的微任务,则继续执行微任务-微任务执行完毕后,再回到宏任务中进行下一轮的循环。

 

posted @ 2022-06-14 22:07  捞档哥  阅读(440)  评论(0编辑  收藏  举报