/

理解 process.nextTick()

理解 process.nextTick()

Node.js的 process.nextTick 函数以特殊的方式与事件循环进行交互。

当你尝试理解 Node.js 事件循环 时,其中一个重要部分就是 process.nextTick()

每次事件循环完成一次循环,我们称之为一次 tick。

当我们将一个函数传递给 process.nextTick() 时,我们指示引擎在当前操作结束后,在下一个事件循环 tick 开始之前调用该函数:

1
2
3
process.nextTick(() => {
// 做一些事情
})

事件循环正在忙于处理当前函数的代码。

当此操作结束时,JS 引擎会运行在该操作期间传递给 nextTick 调用的所有函数。

这是我们告诉 JS 引擎以异步方式处理函数的一种方法(在当前函数之后),但尽快执行而不是将其排队。

调用 setTimeout(() => {}, 0) 会在下一个 tick 结束时执行函数,比使用 nextTick() 要晚得多,后者优先调用并在下一个 tick 开始之前执行。

在下一个事件循环迭代中,使用 nextTick() 可确保代码已经被执行。

tags: [“Node.js”, “event loop”, “nextTick”]