私は、特に、非同期的に反復できるシーケンスのマップ/リデュース関数を提供する JavaScript ライブラリに取り組んでいます。
GitHubの親切な人は、Node.js を使用process.nextTick
して、非同期反復をできるだけ高速にすることを提案しました。(ライブラリは現在setTimeout
すべての環境で使用されていますが、これは最適ではないことを理解しています。)私はノードに関してはかなり経験が浅いので、この方法がどのように機能するかを読んでいましたが、それが良いかどうかはわかりません。選択するかどうか。
SO に関する別の質問への回答によると、保留中の I/O イベントより先にジャンプするように見えるためsetImmediate
、この場合はおそらく使用する方が理にかなっているようです。これは私には悪いようです。nextTick
これは、公式の Node v0.10.0 発表のいくつかの発言によって裏付けられているようです。
v0.10 では、
nextTick
ハンドラーは C++ から JavaScript への各呼び出しの直後に実行されます。つまり、JavaScript コードで が呼び出さprocess.nextTick
れた場合、コードの実行が完了するとすぐにコールバックが発生しますが、イベント ループに戻る前に発生します。
それで、私は正しいsetImmediate
です。シーケンスを非同期に反復処理するには、それともnextTick
、ここでより良い選択でしょうか?(どちらの場合も、理由を明確に説明していただければ幸いです。)