9

私はNode.jsを使用して、最終的にはかなり大きな投稿の配列になる可能性があるものをループします。

クライアント側のJavaScriptを使用して同様のことを行う場合は、スレッドをブロックしないように、ここで説明するようにタイマーを使用します。

私の質問は、「まだ健全な練習サーバー側ですか?」です。または「問題に別の方法でアプローチする必要がありますか?」

4

3 に答える 3

14

node.js でこれを行う適切な方法は、作業をチャンクに分割しprocess.nextTick、現在のチャンクが完了したら次のチャンクをキューに入れることです。そうすれば、キューに入れられた他のコールバックを作業の各チャンク間で実行できるようになります。

UPDATE : Node.js 0.10 の時点では、I/O が枯渇していないことを確認するイベント ループへの譲歩として、通常、この目的setImmediateの代わりに使用する必要がありますが、そうではありません。process.nextTicksetImmediateprocess.nextTick

于 2012-10-08T00:34:41.993 に答える
1

JohnnyHK の提案は有効です。タスクが後で完了できる場合 (つまり、キューに追加された場合)、Web ワーカーを検討します。

于 2012-10-08T00:54:24.177 に答える
-2

非同期ライブラリを見てください。通常のコレクション メソッド (map、filter、each...) の非同期バージョンを提供します。私の知る限り、配列を非同期に処理しても、他のプロセスやユーザーはブロックされません。

于 2012-10-08T13:49:22.530 に答える