微任务和宏任务哪个先执行

宏任务

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

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

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

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

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

发表评论

相关文章