了解Node.js中的setImmediate()

360 阅读1分钟

Node.js的setImmediate函数以一种特殊的方式与事件循环互动

当你想异步执行某段代码,但又想尽快执行时,一种选择是使用Node.js提供的setImmediate() 函数。

setImmediate(() => {
  //run something
})

任何作为setImmediate()参数传递的函数都是一个回调,会在事件循环的下一次迭代中执行。

setImmediate()setTimeout(() => {}, 0) (传递0ms超时),以及process.nextTick() 有什么不同?

传给process.nextTick() 的函数将在事件循环的当前迭代中执行,在当前操作结束后执行。这意味着它将总是在setTimeoutsetImmediate 之前执行。

一个具有0ms延迟的setTimeout() 回调与setImmediate() 非常相似。执行顺序将取决于各种因素,但它们都将在事件循环的下一次迭代中运行。