$ q.all没有解析第二个数组元素

时间:2017-05-03 04:24:34

标签: angularjs promise q

我正在使用$ q.all来测试我的简单代码。一些$ q如何花费很长时间来处理promise数组中的第二个并且我的后端服务器正在超时。当我在浏览器中看到“网络”选项卡时,getAccountStatementList给出了200状态,其中getInvoiceDetails在服务器超时之前显示为挂起状态。我该如何解决这个问题?

var promises = [$http.get('getAccountStatementList'), $http.get('getInvoiceDetails')];

$q.all(promises).then(function(values){
    console.log("Values 0 "+values[0]); // value alpha
    console.log("Values 1 "+values[1]); // value beta
    complete();
});

1 个答案:

答案 0 :(得分:1)

您可以使用catch回调来捕获错误。

$q.all(promises).then(function(values){
    console.log("Values 0 "+values[0]); // value alpha
    console.log("Values 1 "+values[1]); // value beta
    complete();
}).catch(function(error){
   console.log(error)
})
即使一个承诺被拒绝,它的垮台也会立即降临catch。不等待批次的其余部分。