node event loop 什么条件才会进入 close 阶段

新手上路,请多包涵

timers 执行setTimeout setInterval的回调函数
pending callbacks 执行延迟到下一个循环的I/O回调
idle, prepare 内部调用
poll 轮询新的I/O事件;执行I/O相关的回调(除seTimeout setInterval setImmediate 及连接关闭的回调如socket.on('close'),()=>{}),node在这个阶段会阻塞
check 检查阶段,执行setImmediate的回调
close callbacks 执行连接关闭的回调如socket.on('close',()=.{})

这是看到大部分文章的描述

我的疑问是,什么条件下才会进入close callbacks 阶段?

猜测:poll 轮训io事件队列,如果有就执行没有就检查有没有check回调,有就执行执setImmediate的回调没有就继续poll,在判断有没有timers队列,有就进入下一轮,就没啥都没有是不是就会关闭event loop,在关闭前处理一下 close callbacks的回调。

阅读 732
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题