Javascript 角度承诺队列并显示加载数据

Javascript 角度承诺队列并显示加载数据,javascript,angularjs,Javascript,Angularjs,我使用angular的$q承诺如下: $scope.loadingData = true; // show loading spinner in view var thingsToProcess = [....]; for(int i = 0; i < thingsToProcess.length; i++) { var itemToProcess = thingsToProcess[i]; makeServiceCallThatReturnsPromise(item

我使用angular的
$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
$scope.loadingData=true;//在视图中显示加载微调器
var thingsToProcess=[…];
for(int i=0;i
由于服务调用已排队,因此在从服务返回所有数据之前,加载指示器将消失

在所有承诺兑现之前,如何设置加载标志?

您可以使用$q.all()进行此操作。

您可以使用$q.all()进行此操作。

您可以使用)此处

var承诺=[];
对于(int i=0;i您可以使用)这里

var承诺=[];
对于(int i=0;i我同意$q.all(arrayOfPromises),则(successfunction(),failureFunction())。[catch]将对此提供帮助

 var successFlag = false;

function prosessPromises()
{
     var arrPromises = [];
     angular.forEach(collection, function(item, index) {
         var aPromise = promiseFunction(item);
         arrPromises.push(aPromise);
     });
     $q.all(arrPromises).then(successFunction, failureFunction);
}

 function successFunction(data) {
     successFlag = true;
 };

 function failureFunction(error) {
     successFlag = false;
 };
请注意,如果一个承诺失败,那么将调用failureFunction,即使所有其他/剩余的承诺都成功了。

我同意$q.all(arrayOfPromises),然后(sucessFunction(),failureFunction())。[catch]将对此提供帮助

 var successFlag = false;

function prosessPromises()
{
     var arrPromises = [];
     angular.forEach(collection, function(item, index) {
         var aPromise = promiseFunction(item);
         arrPromises.push(aPromise);
     });
     $q.all(arrPromises).then(successFunction, failureFunction);
}

 function successFunction(data) {
     successFlag = true;
 };

 function failureFunction(error) {
     successFlag = false;
 };
请注意,如果一个承诺失败,那么将调用failureFunction,即使所有其他/剩余的承诺都成功了。

感谢您的快速回复(+1),但我是angular新手,另一个答案中的示例确实有帮助,因此我接受了这个答案。它肯定更完整。我也会接受它。感谢您的快速回复(+1)但我对angular还不熟悉,另一个答案的例子真的很有帮助,所以我接受了这个答案。它肯定更完整。我也会接受的。