gpt4 book ai didi

javascript - 如何在没有 'fail-fast' 行为的情况下并行等待多个 promise ?

转载 作者:IT王子 更新时间:2023-10-29 03:07:24 25 4
gpt4 key购买 nike

<分区>

我正在使用 async/await 并行触发多个 api 调用:

async function foo(arr) {
const results = await Promise.all(arr.map(v => {
return doAsyncThing(v)
}))
return results
}

我知道,与 loops 不同,Promise.all executes in-parallel(即等待结果部分是并行的)。

但是 I also know that :

Promise.all is rejected if one of the elements is rejected and Promise.all fails fast: If you have four promises which resolve after a timeout, and one rejects immediately, then Promise.all rejects immediately.

当我读到这篇文章时,如果我 Promise.all 有 5 个 promise ,第一个完成的返回一个 reject(),那么其他 4 个被有效地取消并且它们 promise 的 resolve() 值丢失了。

还有第三种方法吗?执行实际上是并行的,但一次失败不会破坏整个过程?

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