我正在使用 Angular 的 $q
promise ,如下所示:
$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
由于服务调用 promise 已排队,因此在从服务返回所有数据之前加载指示器就会消失。
如何保持加载标志设置直到所有 promise 都得到满足?
最佳答案
您可以使用$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);
})
关于javascript - Angular promise 队列并显示加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22341330/