js的微任務和宏任務


1.機制如下:

注意一點:

宏任務需要多次事件循環才能執行完,微任務是一次性執行完的;

 

 

 

2.宏任務macrotask:

(事件隊列中的每一個事件都是一個macrotask)

優先級:主代碼塊 > setImmediate > MessageChannel > setTimeout / setInterval

比如:setImmediate指定的回調函數,總是排在setTimeout前面

 

 

 

3.微任務包括:

優先級:process.nextTick > Promise > MutationObserver

 

 

 

 

4.舉個栗子:

(1)下面這個代碼輸出結果是什么?(先不要看下面的答案,自己想一想)

(2)揭曉答案:

主程序和和settimeout都是宏任務,兩個promise是微任務

第一個宏任務(主程序)執行完,執行全部的微任務(兩個promise),再執行下一個宏任務(settimeout),所以結果為:


免責聲明!

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



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