ExpertiDict

JavaScript · Intermediário · Inglês · Técnico

Promise.all

/ˈpɹɑmɪs ɔl/função

Função que recebe várias promises e devolve uma que cumpre com o array de resultados quando todas cumprem, ou rejeita assim que a primeira rejeita.

Onde usar

Usada para disparar chamadas independentes em paralelo. Em code review, troca-se awaits em sequência por Promise.all, lembrando que um erro derruba o conjunto.

Em código

async function carregar() {
  const [a, b] = await Promise.all([
    fetch('/a').then((r) => r.json()),
    fetch('/b').then((r) => r.json()),
  ]);
  return [a, b];
}

Exemplos

Run both requests with Promise.all instead of awaiting one by one.

Rode as duas requisições com Promise.all em vez de dar await uma a uma.

If one promise rejects, Promise.all rejects right away.

Se uma promise rejeitar, o Promise.all rejeita na hora.

Cuidado

Usar quando se quer todos os resultados mesmo com falhas: nesse caso, o certo é Promise.allSettled.

Veja também

Todos os termos de JavaScript