Javascript can';t获得$q。所有的工作都有多个承诺
我真的很挣扎。。。我的控制器中有一个函数生成一定数量的承诺,传递给另一个函数,该函数也生成承诺Javascript can';t获得$q。所有的工作都有多个承诺,javascript,angularjs,angular-promise,Javascript,Angularjs,Angular Promise,我真的很挣扎。。。我的控制器中有一个函数生成一定数量的承诺,传递给另一个函数,该函数也生成承诺 angular.forEach($scope.items,function(value,key) { myService.getPage(item).then(function(data) { myFunction(data) }); function myFunction(singlePage) { myService.getPage(singlePage.next)
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。所有配置都有,但没有成功。任何帮助都会很酷!!感谢您忽略您创建的无限递归循环,让我们这样做吧
var allPromises = [];
angular.forEach($scope.items,function(value,key) {
allPromises.push(myService.getPage(value));
});
$q.all(allPromises)
.then(function (arrayOfResults) {
// do something
});
需要注意的一点是,您正在传入值和键,但使用的是“item”。您需要使用value。忽略您创建的无限递归循环,让我们这样做
var allPromises = [];
angular.forEach($scope.items,function(value,key) {
allPromises.push(myService.getPage(value));
});
$q.all(allPromises)
.then(function (arrayOfResults) {
// do something
});
需要注意的一点是,您正在传入值和键,但使用的是“item”。您需要使用value。通过从myFunction中递归调用myFunction,您处于无限循环中,但从未给出何时不调用myFunction的条件。如果我没记错,您需要在处理程序中使用“return”。而且,对了,我还没有发现递归。你能告诉我们使用
$q.all()
方法的尝试吗,因为这似乎是正确的方法。你在一个无限循环中,从myFunction中递归调用myFunction,但从未给出何时不调用myFunction的条件。如果我没记错,你需要“return”在你的处理器中。对,我还没有发现递归。你能告诉我们使用$q.all()
方法的尝试吗,因为在我看来这是正确的方法。当然,函数停止是有条件的。我只是想发布最短的代码。谢谢你的回答!当然,函数停止是有条件的。我只是想发布最短的代码。谢谢你的回答!