我正在使用有角度的$q
承诺:
$scope.loadingData = true; // show loading spinner in view
var thingsToProcess = [....];
for(int i = 0; i < thingsToProcess.length; i++) {
var itemToProcess = thingsToProcess[i];
makeServiceCallThatReturnsPromise(itemToProcess)
.then(function(response) {
processAndDisplayResponse(response);
});
}
$loadingData = false; // hide loading spinner
由于服务调用promises排队,因此在从服务返回所有数据之前,加载指示符消失。
如何设置加载标志,直到所有承诺都被提供?
答案 0 :(得分:3)
你可以在这里使用$q.all(),
var promises=[];
for(int i=0; i<thingsToProcess.length; i++) {
var itemToProcess = thingsToProcess[i];
promises.push( makeServiceCallThatReturnsPromise(itemToProcess)
.then(function(response) {
//do some work here ?
}));
}
$q.all(promises).then(function(){
processAndDisplayResponse(response);
})
答案 1 :(得分:2)
您可以使用$ q.all()。