node的“宏任務(macro-task)”和“微任務(micro-task)”機制


macrotask 和 microtask 表示異步任務的兩種分類。在掛起任務時,JS 引擎會將所有任務按照類別分到這兩個隊列中,首先在 macrotask 的隊列(這個隊列也被叫做 task queue)中取出第一個任務,執行完畢后取出 microtask 隊列中的所有任務順序執行;之后再取 macrotask 任務,周而復始,直至兩個隊列的任務都取完。

兩個類別的具體分類如下:

  • macro-task: script(整體代碼), setTimeoutsetIntervalsetImmediate, I/O, UI rendering
  • micro-task: process.nextTickPromises(這里指瀏覽器實現的原生 Promise),Object.observeMutationObserver

詳見 stackoverflow 解答 或 這篇博客


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM