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