微任務和巨集任務哪個先執行

怡紅公子0526發表於2022-05-07

巨集任務

先說一下事件迴圈:先執行巨集任務,再檢查有沒有微任務,如果有就執行微任務,然後渲染dom,最後進入下一次事件迴圈。

為什麼有人認為微任務先執行? 

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

因為上面的程式碼會先輸出微任務,再輸出巨集任務

這是因為巨集任務是下一個事件迴圈開始的巨集任務,而微任務是這次事件迴圈就執行的微任務,他們之間隔了一個dom渲染。所以造成了微任務比巨集任務更快執行的錯覺。

相關文章