理解 process.nextTick()

在理解 Node.js 事件迴圈時,其中一個重要的部分是 process.nextTick()。每當執行時為某個事件回撥到 JavaScript 時,我們稱之為一個 tick。

當我們將一個函式傳遞給 process.nextTick() 時,我們是在指示引擎在當前操作完成後、進入事件迴圈的下一個階段之前立即呼叫此函式。

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

事件迴圈正忙於處理當前函式的程式碼。當此操作結束時,JS 引擎會執行在該操作期間傳遞給 nextTick 呼叫的所有函式。

這是我們告訴 JS 引擎非同步處理一個函式(在當前函式之後),但要儘快處理,而不是將其排隊的方式。

呼叫 setTimeout(() => {}, 0) 將在下一個 tick 結束時執行該函式,比使用 nextTick() 要晚得多,後者會優先處理該呼叫,並在下一個 tick 開始前執行它。

當你希望確保在下一個事件迴圈迭代中程式碼已經被執行時,請使用 nextTick()

要了解更多關於執行順序和事件迴圈工作原理的資訊,請檢視這篇專門的文章

閱讀時間
1 分鐘
作者
貢獻
編輯此頁面