2014-10-28 57 views
0

我有一個數組,我爲數組循環。爲每個項目 - 我做休息調用並將其保存在數組restArr;

angular.foreach(myItems , function(item){ 
    var q = $http.get("someHttpCall").succsee(function(){}).error(function(){}); 

    restArr.push(q); 
} 

然後我用$ Q

$q.all(restArr).then(function(){ 

    doSomething(); 

}); 

首先,發生了什麼,如果有錯誤返回調用的一個? 第二個 - 有一種方法可以重新開始調用返回錯誤?

感謝

回答

0

如果$q.all內的承諾之一被拒絕,整體承諾將被拒絕。拒絕價值與被拒絕承諾的價值相同。

捕獲拒絕,然後在catch處理程序中處理您的重試邏輯。

$q.all(restArr) 
    .then(doSomething) 
    .catch(handleError);