我有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 });