我有3个服务返回3个promise,但是第三个需要来自第二个的数据,因此我在第二个内部调用它。我想等待所有三个 promise 都得到解决,这是我实现的方式,但是不起作用(仅等待第一个和第二个)。
var promise1, promise2, promise3;
promise1 = service1();
promise2 = service2();
promise2.then(function (data) {
promise3= service3(data);
});
$q.all([ promise1, promise2, promise3]).then(function success() {
//somehing
});
最佳答案
您可以为第二个promise的then()
回调分配第三个服务返回的promise。
var promise1, promise2, promise3;
promise1 = service1();
promise2 = service2();
promise3 = promise2.then(function (data) {
return service3(data);
});
$q.all([ promise1, promise2, promise3]).then(function success() {
//somehing
});