无法获得$q.所有工作都致力于多个承诺

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

本文关键字:工作 致力于 承诺      更新时间:2023-09-26

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

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"。 你需要使用价值。