这正是setImmediate和setTimeout所经历的所有阶段。
没有很好地解释所有阶段setImmediate和setTimeout到底经历了什么,请参阅nodeJS guide。一旦阶段概述部分说I/O回调阶段负责setImmediate,在poll和check部分又说check阶段负责setImmediate。所以我对它有点困惑。IO/回调和/或检查。
有人能解释一下事件循环中setTimeout和setImmediate的生命周期以及它们是如何执行的吗?
发布于 2019-08-01 01:43:13
setTimeout回调在计时器阶段执行,而setImmediate回调在检查阶段执行。
由于计时器阶段在检查阶段之前,因此在setImmediate回调之前将执行setTimeout(fn,0)。
文档也提到了它,下面我引用了阶段概述部分的投票阶段,在那里他们提到了例外。
轮询:检索新的I/O事件;执行与I/O相关的回调(几乎所有使用关闭回调的exception、计时器调度的和setImmediate());节点将在适当的时候阻塞。
https://stackoverflow.com/questions/49981696
复制相似问题