私はNode.jsを使用して、最終的にはかなり大きな投稿の配列になる可能性があるものをループします。
クライアント側のJavaScriptを使用して同様のことを行う場合は、スレッドをブロックしないように、ここで説明するようにタイマーを使用します。
私の質問は、「まだ健全な練習サーバー側ですか?」です。または「問題に別の方法でアプローチする必要がありますか?」
私はNode.jsを使用して、最終的にはかなり大きな投稿の配列になる可能性があるものをループします。
クライアント側のJavaScriptを使用して同様のことを行う場合は、スレッドをブロックしないように、ここで説明するようにタイマーを使用します。
私の質問は、「まだ健全な練習サーバー側ですか?」です。または「問題に別の方法でアプローチする必要がありますか?」
node.js でこれを行う適切な方法は、作業をチャンクに分割しprocess.nextTick
、現在のチャンクが完了したら次のチャンクをキューに入れることです。そうすれば、キューに入れられた他のコールバックを作業の各チャンク間で実行できるようになります。
UPDATE : Node.js 0.10 の時点では、I/O が枯渇していないことを確認するイベント ループへの譲歩として、通常、この目的setImmediate
の代わりに使用する必要がありますが、そうではありません。process.nextTick
setImmediate
process.nextTick
JohnnyHK の提案は有効です。タスクが後で完了できる場合 (つまり、キューに追加された場合)、Web ワーカーを検討します。
非同期ライブラリを見てください。通常のコレクション メソッド (map、filter、each...) の非同期バージョンを提供します。私の知る限り、配列を非同期に処理しても、他のプロセスやユーザーはブロックされません。