Angularjs:$ q.defer和异步调用

时间:2015-06-30 13:09:23

标签: angularjs

我在循环中调用$资源 一旦循环中的所有调用都完成,我想调用另一个$ resource。

我搜索过并发现了$ q.defer,但我不知道如何将其应用到我的示例中:

for (var i=0; i<$scope.fraiss.length; i++){
   var frais = {};
   //copy some properties values of $scope.fraiss[i] in frais then persist frais
   FraisVente.save(frais)
}
MyNextService.query();

如果有人可以帮我这个......

由于

1 个答案:

答案 0 :(得分:1)

您想使用$q.all()

来自角度文档:

  

all(promises);
  将多个承诺合并到一个承诺中,当所有输入承诺都得到解决时,该承诺将得到解决。

var promises = [];

for (var i=0; i<$scope.fraiss.length; i++){
 var frais = {};
 //copy some properties values of $scope.fraiss[i] in frais then persist frais
 promises.push(FraisVente.save(frais));
}

$q.all(promises).then(function() {
  MyNextService.query();
}