我阅读了有关它们的说明,在输入/输出操作之前触发了process.nextTick
,在I / O操作之后触发了setImmediate
。我知道process.nextTick
在所有异步动作之前触发,而setImmediate
在其之后但在setTimeout
之前和setInterval
之前触发。有人可以解释并提供示例吗?在此解释中I/O
操作是什么意思?
最佳答案
让我向您描述这是什么。
假设这是队列。在事件循环中有三个功能可以执行。
a , b , c
因此队列是FIFO,因此首先是第一个服务器,THat意味着a将先执行,然后b,然后c。
所以这两个功能就是这样做的。
当你使用
process.nextTick
,当您运行此程序时,新进程将添加到事件循环中,而正在执行的新进程将立即添加到该事件循环中。那意味着。
a , new_process , b , c
在这种情况下,
new_process
将在当前进程a
从事件循环中退出后执行。然后b,c将执行。和另一只手
setImmediate
,运行此命令时,新进程将添加到队列末尾。像这样a , b, c , new_process
所以现在当所有a,b,c完成时,
new_process
被执行。