Angular 用 $resource 承诺
Angular Promise with $resource
我有一个 angular 承诺,它是通过从 $resource 调用自定义 api 生成的,其中 returns 一个 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。我该怎么做?
您需要使用$q.all。因此,您的 _.each 将填充一个 promises 数组,您将调用 $q.all(thatArray)。 $q.all(thatArray) 中的函数将获得所有这些调用结果的数组,您可以执行 then() 来进行最后一次调用。 https://www.jonathanfielding.com/combining-promises-angular/
我有一个 angular 承诺,它是通过从 $resource 调用自定义 api 生成的,其中 returns 一个 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。我该怎么做?
您需要使用$q.all。因此,您的 _.each 将填充一个 promises 数组,您将调用 $q.all(thatArray)。 $q.all(thatArray) 中的函数将获得所有这些调用结果的数组,您可以执行 then() 来进行最后一次调用。 https://www.jonathanfielding.com/combining-promises-angular/