Promise.all / any / race / allSettled — escolha a ferramenta certa
Pratique os combinadores de Promise: all, any, race e allSettled. Aprenda o comportamento em caso de sucesso ou falha e quando usar cada um
Promise.all / any / race / allSettled — escolha a ferramenta certa é uma aula grátis de JavaScript Academy no CoddyKit. Esta é a aula 3 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de JavaScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de JavaScript Academy inclui 3 aulas no total.
Visão geral dos combinadores
Objetivo: Aprenda quatro auxiliares e seu comportamento.
- all: aguarda todos; falha rapidamente
- any: primeiro sucesso
- race: primeiro concluído (sucesso/erro)
- allSettled: resultados de todos

Noções básicas de Promise.all
Promise.all é resolvido com uma matriz de resultados; uma única rejeição rejeita tudo.
// Small helpers for examples
function delay(ms, value, shouldFail = false) {
return new Promise(function (resolve, reject) {
setTimeout(function () {
if (shouldFail) reject(new Error(String(value)));
else resolve(value);
}, ms);
});
}
// Promise.all waits for all; rejects fast on first error
Promise.all([
delay(10, "A"),
delay(5, "B")
]).then(function (vals) {
console.log("all:", vals);
});

Noções básicas de Promise.any
Promise.any é resolvido com o primeiro sucesso; só é rejeitado se all as entradas forem rejeitadas.
// Promise.any gives the first fulfilled value
Promise.any([
delay(8, "ok-1"),
delay(3, "ok-2"),
delay(6, "ok-3")
]).then(function (v) {
console.log("any:", v);
}).catch(function (e) {
console.log("any failed:", e.message);
});

Noções básicas de Promise.race
Promise.race escolhe o que for concluído primeiro: pode ser uma resolução ou uma rejeição.
// Promise.race settles with the first to finish (success or error)
Promise.race([
delay(5, "win"),
delay(7, "boom", true)
]).then(function (v) {
console.log("race resolved:", v);
}).catch(function (e) {
console.log("race rejected:", e.message);
});

Noções básicas de Promise.allSettled
Promise.allSettled sempre é resolvido com uma matriz de objetos de status para cada entrada.
// Promise.allSettled waits for all and reports each outcome
Promise.allSettled([
delay(4, "A"),
delay(6, "X", true)
]).then(function (results) {
console.log("allSettled:", results.map(function (r) { return r.status; }));
});

Qual usar?
Escolha:
- all: você precisa de all results; falhe rapidamente diante de qualquer erro.
- any: aceite o first success (fontes alternativas).
- race: escolha o first to finish (padrões de tempo limite).
- allSettled: reúna every outcome para inspecionar.

Questionário sobre a escolha de combinadores
Verificação rápida: primeiro resultado cumprido.

Recapitulação
Recapitulação: Use all para “precisa de todos”, any para “primeiro sucesso”, race para “primeiro concluído” e allSettled para inspecionar todos os resultados sem interromper a execução antecipadamente.

Aprenda JavaScript com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 59
- Aulas
- 200
Perguntas Frequentes
A aula “Promise.all / any / race / allSettled — escolha a ferramenta certa” é grátis?
Sim — o texto completo de “Promise.all / any / race / allSettled — escolha a ferramenta certa” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de JavaScript Academy, atualize para CoddyKit PRO. O curso de JavaScript Academy inclui 3 aulas no total.
O que vou aprender em “Promise.all / any / race / allSettled — escolha a ferramenta certa”?
Pratique os combinadores de Promise: all, any, race e allSettled. Aprenda o comportamento em caso de sucesso ou falha e quando usar cada um Você pratica JavaScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar JavaScript Academy?
Nenhuma experiência prévia é necessária. JavaScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 3.
Quanto tempo leva a aula “Promise.all / any / race / allSettled — escolha a ferramenta certa”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de JavaScript Academy?
Sim. Cada aula de JavaScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Loop de eventos e fundamentos de tarefas e microtarefas
- Promises — estados, encadeamento e tratamento de erros
- Promise.all / any / race / allSettled — escolha a ferramenta certa