2016-07-04 4 views
0

두 개의 독립적 인 배열이 함수 내부에서 작동해야합니다. 그래서 나는 약속을 되 돌린다. 하지만 arrayOne에 도착할 때. 길이 약속이 해결 될 때까지 기다리지 않습니다. 어떻게 작동 시키는가?두 가지 약속에 따라

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

글쎄, 당신은 * 어떤 *의 약속 해결하는 대기하지 않는 여기, 두 가지만 빼고. – 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 
}); 
관련 문제