![](/img/trans.png)
[英]Returning an array of promises for Promise.all using filter not working
[英]Promise.all() based on functions returning Promises
我试图将Promise.all()
与封装在函数上的Promises一起使用:
function fn1(val){
return new Promise((resolve, reject) => {
/* promise body */
});
}
function fn2(val){
return new Promise((resolve, reject) => {
/* promise body */
});
}
fn1(data)
.then((val) => fn2(val))
.catch((error) => alert(error)
Promise.all([fn1, fn2]).then(() => alert("Done!"))
这似乎是不可能的,因为Promise.all([fn1, fn2])
直接执行,而不是等待成功的承诺。
我知道我可以将另一个.then .then()
到thenable结构,但是我想知道是否有任何方法可以在将Promises包含在函数中的上下文中使用Promise.all()
。
Promise.all
需要一个Promise
Array
。
由于您的函数返回Promises,因此您可以在声明Promise.all
数组的同时调用函数,它们将被Promises 代替 。
// error handling (reject/catch) omitted for brevity. function fn1 (val) { return new Promise(resolve => { resolve('foo ' + val) }) } function fn2 (val) { return new Promise(resolve => { resolve('bar ' + val) }) } Promise.all([fn1(1), fn2(2)]) .then(result => console.log(result))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.