1、JS 中用來存儲待執行回調函數的隊列包含2 個不同特定的列隊
2、宏列隊: 用來保存待執行的宏任務(回調), 比如: 定時器回調/DOM 事件回調/ajax 回調
3、微列隊: 用來保存待執行的微任務( 回調), 比如: promise 的回調/MutationObserver 的回調
4、JS 執行時會區別這2 個隊列
4.1 JS 引擎首先必須先執行所有的初始化同步任務代碼
4.2 每次准備取出第一個宏任務執行前, 都要將所有的微任務一個一個取出來執行
demo樣例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <!-- <script src="customedPromise/promise.js"></script> --> <script type="text/javascript"> setTimeout(() => { console.log('timeout callback1()') Promise.resolve(3).then( value => { console.log('Promise onResolved3()', value); } ) }, 0) setTimeout(() => { console.log('timeout callback2()') }, 0) Promise.resolve(1).then( value => { console.log('Promise onResolved1()', value); } ) Promise.resolve(2).then( value => { console.log('Promise onResolved2()', value); } ) </script> </head> <body> </body> </html>