10

私は、特に、非同期的に反復できるシーケンスのマップ/リデュース関数を提供する 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、ここでより良い選択でしょうか?(どちらの場合も、理由を明確に説明していただければ幸いです。)

4

1 に答える 1