hmswt

宏任务

先说一下事件循环:先执行宏任务,再检查有没有微任务,如果有就执行微任务,然后渲染dom,最后进入下一次事件循环。

为什么有人认为微任务先执行? 

     setTimeout(() => {
      console.log("宏任务");
    }, 0);
    Promise.resolve().then((e) => {
      console.log("微任务");
    });

因为上面的代码会先输出微任务,再输出宏任务

这是因为宏任务是下一个事件循环开始的宏任务,而微任务是这次事件循环就执行的微任务,他们之间隔了一个dom渲染。所以造成了微任务比宏任务更快执行的错觉。

相关文章:

  • 2021-05-31
  • 2022-12-27
  • 1970-01-01
  • 2021-11-28
猜你喜欢
  • 2021-11-03
  • 2022-12-23
  • 2021-11-03
  • 2022-12-23
  • 2022-12-23
  • 2022-01-17
相关资源
相似解决方案