使用 Angular 的 $q.all 和相互依赖的承诺
Using Angular's $q.all with codependent promises
第二个承诺需要第一个承诺的结果作为参数。
我 have seen an example 用 ES6 promises 解决了这个问题。
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 相似的行为。有什么想法吗?
在 Angular 1.4 中你可以使用 $q.resolve(result1)
.
来源:Angular 1.4 $q.resolve docs.
在旧版本中,您可以使用 $q.defer().resolve(result1)
。
第二个承诺需要第一个承诺的结果作为参数。 我 have seen an example 用 ES6 promises 解决了这个问题。
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 相似的行为。有什么想法吗?
在 Angular 1.4 中你可以使用 $q.resolve(result1)
.
来源:Angular 1.4 $q.resolve docs.
在旧版本中,您可以使用 $q.defer().resolve(result1)
。