ExpertiDict

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

Promise.allSettled

/ˈpɹɑmɪs ɔl ˈsɛtəld/substantivo

Método que espera todas as promises terminarem, dando certo ou não, e devolve um array de objetos com status fulfilled ou rejected. Nunca rejeita por causa de uma delas.

Onde usar

Usado quando várias chamadas independentes devem ser todas tentadas, como carregar os widgets de uma tela. Em code review, é a alternativa ao Promise.all, que rejeita na primeira falha.

Em código

Promise.allSettled([
  Promise.resolve(1),
  Promise.reject(new Error('falhou')),
]).then((rs) => {
  console.log(rs[0].status); // fulfilled
  console.log(rs[1].status); // rejected
});

Exemplos

I used Promise.allSettled so one failed widget doesn't hide the others.

Usei Promise.allSettled para um widget com falha não esconder os outros.

Promise.all rejects on the first error, but allSettled waits for everyone.

Promise.all rejeita no primeiro erro, mas allSettled espera todo mundo.

Cuidado

Esquecer de checar o status de cada item antes de ler value ou reason.

Antônimos

Promise.all

Veja também

Todos os termos de JavaScript