Как мне ожидать параллельного выполнения нескольких обещаний без «быстрого-безотказного» поведения? [Дубликат]

На этот вопрос уже есть ответ:

Подождите, пока не будут выполнены все обещания ES6, даже отклоненные обещания 15 ответов

Я используюasync/await уволить несколькоapi звонит параллельно:

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

Я знаю это, в отличие отloops, Promise.all исполняет параллельно (то есть часть ожидания результатов параллельна).

Но Я тоже знаю, что:

Promise.all отклоняется, если один из элементов отклоняется, и Promise.all не выполняется быстро: если у вас есть четыре обещания, которые разрешаются после истечения времени ожидания, и одно отклоняется немедленно, тогда Promise.all отклоняется немедленно.

Как я это читаю, если яPromise.all с 5 обещаниями, и первое, что закончится, возвращаетreject(), тогда остальные 4 фактически отменяются и их обещанныеresolve() значения теряются.

Есть третий путь? Где выполнение эффективно параллельно, но один сбой не портит всю связку?

Ответы на вопрос(2)

Ваш ответ на вопрос