第二个承诺需要第一个承诺作为参数的结果。 我have seen an example用ES6承诺解决这个问题。
firstThingAsync()
.then(function(result1) {
return Promise.all([Promise.resolve(result1), secondThingAsync(result1)]);
})
.then(function(result1, result2) {
// do something with result1 and result2
})
.catch(function(err){ /* ... */ });
但我不确定$ q函数与Promise.resolve有类似的行为。有什么想法吗?
答案 0 :(得分:1)
在Angular 1.4中,您可以使用$q.resolve(result1)
。
来源:Angular 1.4 $q.resolve docs。
在旧版本中,您可以使用$q.defer().resolve(result1)
。