gpt4 book ai didi

javascript - 使 Promise.race 仅在成功时完成

转载 作者:行者123 更新时间:2023-11-30 19:09:08 25 4
gpt4 key购买 nike

我有三个返回对象的异步函数。如果其中一个函数不成功,它们将返回一个空对象。问题是,如果我尝试 Promise.race 这些函数,其中一个不成功的函数可能会先完成并返回一个空对象。我的 Promise 代码如下所示:

let product = await Promise.race([
get_info_1(code),
get_info_2(code),
get_info_3(code)
])

是否可以在不停止 Promise.race 的情况下停止其中一个异步 get_info 函数的运行?或者我可以以某种方式告诉 Promise.race 等到返回的对象包含一些信息吗?

最佳答案

你可以让被拒绝的Promise永不完成

const never_resolve = new Promise(() => {}) 
{
(async function() {
let product = await Promise.race([
Promise.reject(1).catch(_ => never_resolve),
Promise.resolve(2).catch(_ => never_resolve),
Promise.reject(3).catch(_ => never_resolve)
])
console.log(product)
})()
}

关于javascript - 使 Promise.race 仅在成功时完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58680137/

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