Node.js的setImmediate函数以一种特殊的方式与事件循环互动
当你想异步执行某段代码,但又想尽快执行时,一种选择是使用Node.js提供的setImmediate() 函数。
setImmediate(() => {
//run something
})
任何作为setImmediate()参数传递的函数都是一个回调,会在事件循环的下一次迭代中执行。
setImmediate() 与setTimeout(() => {}, 0) (传递0ms超时),以及process.nextTick() 有什么不同?
传给process.nextTick() 的函数将在事件循环的当前迭代中执行,在当前操作结束后执行。这意味着它将总是在setTimeout 和setImmediate 之前执行。
一个具有0ms延迟的setTimeout() 回调与setImmediate() 非常相似。执行顺序将取决于各种因素,但它们都将在事件循环的下一次迭代中运行。