使用Angular.js和Restangular,当循环中的所有子请求完成时,如何挂钩?例如:
Restangular.all('clusters').getList().then(function(clusters) {
clusters.forEach(function(cluster, index) {
cluster.get().then(function(response) {
//some logic
});
});
});
基本上我需要知道所有对cluster.get()
的所有子请求何时完成,然后再做一些事情。这样做有干净的方法吗?
答案 0 :(得分:2)
您应该能够使用$q.all方法等待所有请求。它可以这样工作:
Restangular.all('clusters').getList().then(function(clusters) {
var promises = clusters.map(function(cluster, index) {
return cluster.get().then(function(response) {
//some logic
});
});
return $q.all(promises);
}).then(function() {
// logic for when all of the get methods are complete
});