我真的很挣扎......我的控制器中有一个函数会产生一定数量的承诺,传递给另一个也能产生承诺的函数......
angular.forEach($scope.items,function(value,key) {
myService.getPage(item).then(function(data) {
myFunction(data)
});
function myFunction(singlePage) {
myService.getPage(singlePage.next).then(function(data) {
myFunction(data)
});
}
我想要实现的是以何种方式知道所有承诺何时得到解决
我试图将我的承诺包装在一个数组中并将其传递给$ q.all,但是没有成功。任何一种帮助都会非常酷!感谢
答案 0 :(得分:2)
忽略你创建的无限递归循环,让我们这样做......
var allPromises = [];
angular.forEach($scope.items,function(value,key) {
allPromises.push(myService.getPage(value));
});
$q.all(allPromises)
.then(function (arrayOfResults) {
// do something
});
有一点需要注意,你传递的是价值和关键,但使用“项目”。你需要使用价值。