# EventLoop
说起事件循环机制肯定很熟悉了,但是 NodeJs 中的事件循环机制与 web 中的有所不一样
NodeJs 中将 web 中的宏任务队列拆分成了几种,其中经常用到的有
- timer 本阶段执行setTimeout() 和 setInterval() 计划的回调;
- I/O 回调: 执行几乎全部发生异常的 close 回调, 由定时器和 setImmediate() 计划的回调;
- poll 获取新的 I/O 事件;nodejs这时会适当进行阻塞;
- check 调用 setImmediate() 的回调;
nodejs 中 process.nextTick 是微任务且优先于 Promise.then 的回调
在 web 中执行完一个宏任务之后就会去检查微任务队列是否有任务,而在 nodejs 中只有在当前队列执行完毕后切换队列之前会去检查微任务队列