无法让 $q.all 处理多个承诺

can't get $q.all work on multiple promises

我真的很纠结...我的控制器中有一个函数生成一定数量的承诺,传递给另一个也生成承诺的函数...

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 但没有成功..任何形式的帮助都会非常酷!谢谢

忽略您创建的无限递归循环,让我们这样做...

var allPromises = [];
angular.forEach($scope.items,function(value,key) {
    allPromises.push(myService.getPage(value));
});

$q.all(allPromises)
    .then(function (arrayOfResults) {
        // do something
    });

需要注意的一点是,您传递的是值和键,但使用的是 "item"。您需要使用值。