了解 process.nextTick()
Node.js process.nextTick 函数以一种特殊的方式与事件循环交互。
当你尝试理解 Node.js 事件循环时,其中一个重要部分是 process.nextTick()
。 每次事件循环完成一次完整的行程,我们称之为滴答。
当我们将一个函数传递给 process.nextTick()
时,我们指示引擎在当前操作结束时调用此函数,在下一个事件循环滴答开始之前:
事件循环正忙于处理当前函数代码。 当此操作结束时,JS 引擎运行在该操作期间传递给 nextTick
调用的所有函数。
这是我们可以告诉 JS 引擎异步处理函数的方式(在当前函数之后),但要尽快,而不是将其排队。
调用 setTimeout(() => {}, 0)
将在下一个滴答结束时执行该函数,比使用 nextTick()
时要晚得多,后者优先调用并在下一个滴答开始之前执行它。
当你想确保在下一次事件循环迭代中该代码已被执行时,请使用 nextTick()
。