ホームページ  >  記事  >  ウェブフロントエンド  >  相互依存する複数の非同期リクエストを完了する Promise 処理インスタンス

相互依存する複数の非同期リクエストを完了する Promise 処理インスタンス

巴扎黑
巴扎黑オリジナル
2018-05-24 13:45:513471ブラウズ

以下のエディターは、Promise が複数の相互依存する非同期リクエストをどのように処理するかに関する記事を提供します (例による説明)。編集者はこれがとても良いと思ったので、参考として共有します。エディターをフォローして見てみましょう

プロジェクトでは、相互に依存する複数の非同期リクエストに遭遇することがよくあります。 ajax リクエスト a、b、c の 3 つがある場合、b は a から返されたデータに依存する必要があり、c は a と b リクエストから返されたデータを必要とします。当然ながら、ネストされたリクエストを使用することはお勧めできません。コードのメンテナンスが難しくなり、多くのリクエストが発生します。多くの疑問が生じます。

複数の非同期リクエストの問題を解決することをお約束します。 Promise は ES6 によって提供されるオブジェクトで、非同期操作のメッセージを配信するために使用されます。

Promise には 3 つの状態があります: 保留中 (進行中)、解決済み (完了、履行とも呼ばれます)、拒否済み (失敗)。

コードに直接移動します。 aとbのリクエストがあり、bはaのリクエストデータに依存します。以下のように:

function a(){
      return new Promise(function(res,rej){
        $.ajax({
          url:"a",
          type: "GET",
          async:true,
          dataType:"json",
          success:function(data){
            console.log(data,"a");
            res(data);
          }
        })
      });
    }
    function b(data){
      console.log(data,"data");
      return new Promise(function(res,rej){
        $.ajax({
            url:"b",
            type: "POST",
            async:true,
            data:JSON.stringify(data),
            dataType:"json",
            success:function(data){
              console.log(data,"b");
              res();
            }
          })
      });
    }
    $("#btn").click(function(){
      a().then(function (data){
        b(data);
      }).then(function(){
      })
    })

インターネット上でインターフェイスの URL を見つけました。実行結果を確認できます:

以上が相互依存する複数の非同期リクエストを完了する Promise 処理インスタンスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。