2017-08-25 1 views
0

リクエストをまとめて実行するためにリクエストを保持する方法があるかどうかを知りたいですか?私はほとんどそれらを一緒に受信した場合インジェクタAngularjsを使用してリクエストを保持する

要求1 要求2 リクエスト3

は、アイデアは、リクエスト1を実行し、この要求が完了した後、次に他人を実行することです。

私はインジェクターを使用してそれをしたいと思います。

ありがとうございます!

+2

これを試みて失敗したことを示すコードを提供する必要があります。 – Ohjay44

+0

AngularJSの$ injectorは、非同期注入のためのサポートを持っていないようです。 async-injectorのような他のパッケージをダウンロードすることもできますし、必要に応じて$ injectorの上にレイヤーを作成して約束することもできます – Alburkerk

答えて

0

あなたはrequest方法で約束を返すことによって、AngularJSインターセプタを使用して要求を保持することができます:

authInterceptor.$inject = ['$q', '$rootScope']; 
function authInterceptor($q, $rootScope) { 
    return { 
     request: function(config) { 
      var deferred = $q.defer(); 

      if(condition) { 
       deferred.resolve(config) 
      } 

      return deferred.promise; 
     } 
    }; 
} 

この例では、要求は、いくつかの条件を満たしまで開催します。

あなたができることは、すべてのリクエスト(上記の例ではdeferred変数)へのハンドルを保持し、それぞれを希望の順序で解決して送信することです。

関連する問題