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)浏览器
浏览器线程构成:网络