2016-07-04 6 views
0

私は機能の中でそれらを扱うために2つの独立した配列が必要です。だから私は約束を返す。しかし、arrayOne.lengthになると、約束が解決されるまで待ちません。どのようにそれを動作させるには?2つの約束に応じて

this.workWithArrays = function() { 
    var arrayOne = this.getArrayOne(); 
    var arrayTwo = this.getArrayTwo(); 

    for (var i = 0; i < arrayOne.length; i++) { 
     ..... 
    } 

getArrayOneとgetArrayTwoはほとんど同じです:

this.getArrayOne = function() { 
    return $http.get('/1').then(
     function success(response) { 
     return response.data; 
     }, 
     function error(data) { 
     console.log(data); 
     } 
    ); 
} 
+2

待っていませんここでは、2つよりも。 – deceze

答えて

1

を注入$qサービスと、それはallメソッドの使用:まあ、あなたが解決する*すべての*の約束のために

this.workWithArrays = function() { 
var arrayOne = this.getArrayOne(); 
var arrayTwo = this.getArrayTwo(); 
$q.all([arrayOne,arrayTwo]).then(function(responses){ 
    // your logic that needs to run after both promises resolve 
}); 
関連する問題