理解 process.nextTick()

在理解 Node.js 事件循环时,其中一个重要的部分是 process.nextTick()。每当运行时为某个事件回调到 JavaScript 时,我们称之为一个 tick。

当我们将一个函数传递给 process.nextTick() 时,我们是在指示引擎在当前操作完成后、进入事件循环的下一个阶段之前立即调用此函数。

.(() => {
  // do something
});

事件循环正忙于处理当前函数的代码。当此操作结束时,JS 引擎会运行在该操作期间传递给 nextTick 调用的所有函数。

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

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

当你希望确保在下一个事件循环迭代中代码已经被执行时,请使用 nextTick()

要了解更多关于执行顺序和事件循环工作原理的信息,请查看这篇专门的文章

阅读时间
1 分钟
作者
贡献
编辑此页面