带资源的Angular Promise

时间:2016-05-19 16:53:37

标签: angularjs promise angular-promise angular-resource

我有一个角度承诺,它是通过从$ resource调用自定义api生成的,它返回一个id数组。我需要在每个id上调用另一个$ resource api,一旦加载了所有细节,我希望原始调用继续。

MyFactory.loadChildren(id).then(saveSuccess, saveFail);
MyFactory.loadChildren = function(id) {
      return MyResource.children({
        id: id
      }).$promise

        .then(function(response) {
          _.each(response, function(c) {
            MyResource.details({id:c.id}).$promise.then(function(child){
             //do something with the child



            },function(){

            })
          });
          return //all the children details;
        });
    };

我想在加载所有子细节后执行saveSuccess。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

您需要使用$ q.all。所以你的_.each将填充一个promises数组,你将调用$ q.all(thatArray)。 $ q.all(thatArray)中的函数将获得所有这些调用的结果数组,您可以执行then()来执行最终调用。 https://www.jonathanfielding.com/combining-promises-angular/