process.nextTick() を理解する

Node.js のイベントループを理解しようとするとき、その重要な部分の 1 つが process.nextTick() です。ランタイムがイベントのために JavaScript にコールバックするたびに、それをティックと呼びます。

process.nextTick() に関数を渡すとき、現在の操作が完了した直後、イベントループの次のフェーズに移行する前に、この関数を呼び出すようにエンジンに指示します。

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

イベントループは、現在の関数コードの処理でビジー状態です。この操作が終了すると、JS エンジンはその操作中に nextTick の呼び出しに渡されたすべての関数を実行します。

これは、JS エンジンに関数を非同期的に(現在の関数の後で)処理するように指示する方法ですが、それをキューに入れるのではなく、できるだけ早く処理します。

setTimeout(() => {}, 0) を呼び出すと、次のティックの最後にその関数が実行されます。これは、呼び出しを優先し、次のティックの開始直前に実行する nextTick() を使用する場合よりもずっと後になります。

次のイベントループの反復で、そのコードが既に実行されていることを確認したい場合は、nextTick() を使用します。

実行順序とイベントループの仕組みについて詳しく知るには、専用の記事をご覧ください。

読了時間
1 分
作成者
コントリビュート
このページを編集