>[danger]node事件循环的6个阶段 Node.js 的事件循环分为 6 个阶段,它们分别是: 1. **timers**:处理 setTimeout() 和 setInterval() 的回调函数。 2. **pending callbacks**:处理系统级别操作的回调函数,例如网络、I/O 等等。这些回调函数被延迟到下一个循环迭代中执行。 3. **idle, prepare**:仅在内部使用。 4. **poll**:检索新的 I/O 事件;执行与 I/O 相关的回调函数(几乎所有情况下,在此阶段执行的脚本不会超过一次)。将适当的时间分配给操作系统以执行任何事件循环外的操作。 5. **check**:setImmediate() 回调函数在这里执行。 6. **close callbacks**:例如 socket.on('close', ...) 的回调函数在这里执行。 需要注意的是,每个阶段都有一个 FIFO 队列来存放回调函数。在一个阶段中,所有的回调函数都将被执行。如果队列为空或达到了处理回调函数的上限(默认为 10 000),则 Node.js 将继续前进到下一个阶段。 总的来说,Node.js 的事件循环机制与浏览器类似,但具体实现和细节略有不同。掌握事件循环的原理和事件的分类,有助于我们更好地理解 Node.js 中的异步编程模型。