了解 process.nextTick()

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

目录

当你尝试理解 Node.js 事件循环时,其中一个重要部分是 process.nextTick()。 每次事件循环完成一次完整的行程,我们称之为滴答。

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

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

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

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

当你想确保在下一次事件循环迭代中该代码已被执行时,请使用 nextTick()

事件顺序的示例:

Output:

Node.js 中文网 - 粤ICP备13048890号