2016-10-10 9 views
0

私は、単純な$http.get(myUrl + id).then()...にIDを送信

var ids = [1,2,3] 
var extensionPromises = []; 
    for (var i = 0 ; i < extensions.length ; i++) { 

     var myPromise = myHttpService.getOneExtension(ids[i]); 
     extensionPromises.push(myPromise); 
    } 

return $q.when(
     Promise.all(extensionPromises).then(function(all){ 

      $rootScope.$broadcast("allReady"); 
      return true; 
     }).catch(function(error){ 
      var e = {}; 
      e.error = error; 
      e.error.type = "http.get"; 
      return (e); 
     }) 
); 

、すべての作業OK配列から$ http.getを要求を行うサービス内の機能を持っていますが、私が見たときにXHRはで情報を取得しますコンソール、それは逆順、つまり3,2,1で解決します。

これは正常ですか?

答えて

0

複数の非同期要求の解決順序は保証されていません。彼らはネットワーク時間、サーバ時間などの影響を受けます。同じエンドポイントへの2つのリクエストであっても、送信されたのと同じ順番で返ってこないかもしれません。

+0

私も同じように思っていますが、 – distante

+0

'$ q.when'の中で' Promise.all'を使う必要はありません... '$ q.all()'を使うことができます – charlietfl

+0

ああ!私は '$ q.al()l'のことを知らなかった、ありがとう! – distante

関連する問題