JavaScript の非同期ループ
JavaScript にはさまざまなタイプのループが用意されていますが、実行を一時停止して非同期呼び出しを待機するループを作成することもできます。挑戦的。これは、同期コードと非同期コードを混在させると、予期しない動作が発生する可能性があるためです。
解決策: 非同期アプローチを採用する
この制限を克服するには、イベントを完全に受け入れる必要があります。 JavaScript の -driven アプローチ。これには、非同期呼び出しの完了時に呼び出される関数の使用が含まれます。コールバックが呼び出された後、ループは実行を継続できます。
asyncLoop 関数の紹介
この非同期ループ動作を容易にするために、asyncLoop と呼ばれるヘルパー関数を作成できます。
asyncLoop 関数は、現在の反復を追跡するために内部変数インデックスを維持し、ループがいつ完了したかを示すために Done 変数にフラグを立てます。関数内には、次のメソッドを提供する内部ループ オブジェクトがあります。
ループを開始するには、loop.next() が呼び出されます。 func 関数が呼び出されるたびに、loop.next() を呼び出してループを続行するか、loop.break() を呼び出してループを終了できます。
使用例:
次の例は、asyncLoop 関数を使用して非同期ループを作成する方法を示しています。
<code class="javascript">asyncLoop(10, (loop) => { someFunction(1, 2, (result) => { console.log(loop.iteration()); loop.next(); }); }, () => { console.log('cycle ended'); });</code>
このコードは someFunction を 10 回非同期で実行し、反復回数をコンソールに記録します。ループが完了すると、サイクル終了メッセージが出力されます。
このアプローチを利用すると、JavaScript 開発者はイベント駆動型環境でシームレスに動作する非同期ループを作成でき、スクリプトとブラウザのブロックに伴う潜在的な問題を回避できます。
以上がJavaScript で非同期ループを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。