Administrator
Administrator
发布于 2025-04-06 / 5 阅读
35
0

事件循环的流程

事件循环的流程:

  • 事件循环分为6个阶段,这六个阶段会按顺序反复运行;

  • 运行到某阶段,都会从该阶段对应的回调队列中取出函数执行

  • 当队列为空或者执行的回调函数数量达到系统设定的阈值,就会进入下一个阶段

Node的Event loop一共分为6个阶段,每个细节具体如下:

  1. timers: 执行setTimeout和setInterval中到期的callback。

  2. pending callback: 上一轮循环中少数的callback会放在这一阶段执行。

  3. idle, prepare:仅在内部使用。

  4. poll:最重要的阶段,执行pending callback,在适当的情况下回阻塞在这个阶段。

  5. check:执行setImmediate的callback。

  6. close callbacks: 执行close事件的callback,例如socket.on('close'[,fn])或者http.server.on('close, fn)。

注意:上面六个阶段都不包括 process.nextTick()


评论