Node的Event Loop分階段,階段有前後,依次是 expired timers and intervals,即到期的setTimeout/setInterval I/O events,包含文件,網絡等等 immediates,經過setImmediate註冊的函數 close handlers,close事件的回調,好比TCP鏈接斷開 同步任務及每一個階段以後都會清空microtask隊列 優先清空next tick queue,即經過process.nextTick註冊的函數 再清空other queue,常見的如Promise 而和規範的區別,在於node會清空當前所處階段的隊列,即執行全部task(10以前),如今是每一個宏任務而後全部微任務
task主要包含:setTimeout、setInterval、setImmediate、I/O、UI交互事件
microtask主要包含:Promise、process.nextTick、MutaionObserver
宏任務:script(總體代碼)、setTimeout、setInterval、I/O、事件、postMessage、 MessageChannel、setImmediate (Node.js)node
微任務:Promise.then、 MutaionObserver、process.nextTick (Node.js)瀏覽器
瀏覽器線程構成:網絡