宏任务和微任务

宏任务

  1. setTimeout
  2. setInterval
  3. ajax
  4. dom事件

微任务

  1. promise
  2. asnyc/await

微任务比宏任务更早执行

js单线程,和dom渲染共用一个线程

原因:

代码执行过程:

  1. callstack一条条执行
  2. call back空闲时,尝试dom渲染
  3. call back空闲时,尝试dom渲染结束后,触发event loop
  4. call back空闲时,尝试dom渲染结束后,触发event loop后,尝试web apis
  5. 重复以上步骤
原文地址:https://www.cnblogs.com/baixinL/p/14085820.html