gpt4 book ai didi

javascript - Promise.all() 基于返回 Promises 的函数

转载 作者:行者123 更新时间:2023-12-03 00:35:26 25 4
gpt4 key购买 nike

我正在尝试将 Promise.all() 与封装在函数上的 Promise 一起使用:

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]) 直接执行,而不是等待 promise 成功。

我知道我可以将另一个 .then() 链接到 thenable 结构,但我想知道是否有任何方法可以使用 Promise.all( ) 在 Promise 包含在函数中的上下文中。

最佳答案

Promise.all 采用 PromiseArray

由于您的函数返回 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))

关于javascript - Promise.all() 基于返回 Promises 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53683488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com