jQuery Promises を使用した非同期呼び出しの連鎖
JavaScript の非同期プログラミングを使用すると、ユーザーのインターフェイスをブロックせずにコードを実行できます。これを実現するために、データ フローを管理し、タスクが特定の順序で実行されるようにするために Promise がよく使用されます。
指定されたシナリオでは、3 つの非同期 HTTP 呼び出しを順番に実行することを目的としています。遅延された Promise を持つ 2 つの関数を含む部分的なソリューションを提供しました。これを 3 つの関数に拡張するために、中心となる概念を詳しく調べてみましょう。
非同期リクエストを開始する各関数で、$.ajax() によって返される jqXHR オブジェクトを返します。これらの jqXHR オブジェクトは Promise 互換です。つまり、.then()、.done()、.fail()、または .always() を使用して簡単にチェーンできます。
この場合、.then( ) は、3 つの呼び出しを接続し、一方から他方にデータを渡すことができるため、最も適しています。次のコード サンプルは、完全なソリューションを示しています。
<code class="javascript">function first() { return $.ajax(...); } function second(data, textStatus, jqXHR) { return $.ajax(...); } function third(data, textStatus, jqXHR) { return $.ajax(...); } function main() { first().then(second).then(third); }</code>
引数 data、textStatus、および jqXHR は、前の呼び出しの $.ajax() 呼び出しから後続の各関数に渡されます。これにより、first() から Second()、および Second() から third() にデータを渡すことができ、呼び出しが同期的に実行され、それらの間でデータがシームレスに流れることが保証されます。
を使用することもできます。 $.when('foo') のようなヘルパー関数は、テスト中またはソリューションの開発中に $.ajax(...) の代わりに実行された Promise を提供します。
以上がjQuery Promises を使用して 3 つの非同期 HTTP 呼び出しを連続して実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。