Node 中的 Event Loop 和浏览器中的是完全不相同的东西。
Node 的 Event Loop 分为 6 个阶段,它们会按照顺序反复运行。每当进入某一个阶段的时候,都会从对应的回调队列中取出函数去执行。当队列为空或者执行的回调函数数量到达系统设定的阈值,就会进入下一阶段。
- timer
timers 阶段会执行setTimeout和setInterval回调,并且是由 poll 阶段控制的。
同样,在 Node 中定时器指定的时间也不是准确时间,只能是尽快执行。 - I/O
I/O 阶段会处理一些上一轮循环中的少数未执行的 I/O 回调。 - idle, prepare
- poll
poll 是一个至关重要的阶段,这一阶段中,系统会做两件事情:回到 timer 阶段执行回调;执行 I/O 回调 - check
check 阶段执行setImmediate。 - close callbacks
close callbacks 阶段执行 close 事件。

被折叠的 条评论
为什么被折叠?



