Até aqui, você já conhece Promise.all e Promise.race.
Agora vamos aprender duas variações modernas que resolvem problemas muito comuns no mundo real:
Promise.anyPromise.allSettled
Esses métodos não substituem os antigos — eles complementam.
🎯 Objetivo da aula
Ao final desta aula, você será capaz de:
- Entender a diferença entre
all,anyeallSettled - Escolher o método correto para cada cenário
- Lidar melhor com falhas parciais
- Escrever código assíncrono mais robusto
Relembrando rapidamente
Vamos alinhar o comportamento dos métodos mais conhecidos:
Promise.all→ falha se uma falharPromise.race→ vale a primeira que resolver (ou rejeitar)
Agora veremos alternativas mais flexíveis.
Promise.any — “me dê a primeira que DER CERTO”
Promise.any resolve quando:
- a primeira Promise for resolvida com sucesso
Ela ignora as rejeições iniciais.
Exemplo prático — múltiplas fontes
const fonte1 = Promise.reject("Fonte 1 indisponível");
const fonte2 = new Promise(resolve => setTimeout(() => resolve("Dados da fonte 2"), 500) );
const fonte3 = new Promise(resolve => setTimeout(() => resolve("Dados da fonte 3"), 1000) );
Promise.any([fonte1, fonte2, fonte3])
.then(resultado => {
console.log(resultado);
});
// Saída será: // Dados da fonte 2 Aqui:
- a fonte 1 falhou → ignorada
- a fonte 2 funcionou → resultado final
E se TODAS falharem?
Nesse caso, Promise.any rejeita com um AggregateError.
Promise.any([ Promise.reject("Erro 1"), Promise.reject("Erro 2") ]) .catch(erro => { console.log(erro.errors); }); // Saída será: // ["Erro 1", "Erro 2"] Promise.any só falha se TODAS falharem. Quando usar Promise.any?
- múltiplos servidores
- fallbacks
- CDNs alternativas
- qualquer cenário “me dê um que funcione”
Promise.allSettled — “quero saber o resultado de TODAS”
Promise.allSettled:
- espera todas as Promises finalizarem
- não falha se alguma rejeitar
- retorna o status de cada uma
Exemplo prático — relatório completo
const tarefa1 = Promise.resolve("Tarefa 1 OK");
const tarefa2 = Promise.reject("Tarefa 2 falhou");
const tarefa3 = Promise.resolve("Tarefa 3 OK");
Promise.allSettled([tarefa1, tarefa2, tarefa3])
.then(resultados => {
console.log(resultados);
});
// Saída será: [ { status: "fulfilled", value: "Tarefa 1 OK" }, { status: "rejected", reason: "Tarefa 2 falhou" }, { status: "fulfilled", value: "Tarefa 3 OK" } ] Formato do retorno
Cada resultado tem:
status: "fulfilled" ou "rejected"value: se deu certoreason: se falhou
Isso permite tratamento individual.
Exemplo — processando os resultados
Promise.allSettled([tarefa1, tarefa2, tarefa3]) .then(resultados => { resultados.forEach(resultado => { if (resultado.status === "fulfilled") { console.log("Sucesso:", resultado.value); } else { console.log("Erro:", resultado.reason); } }); }); // Saída será: // Sucesso: Tarefa 1 OK // Erro: Tarefa 2 falhou // Sucesso: Tarefa 3 OK Quando usar Promise.allSettled?
- dashboards
- relatórios
- processos em lote
- quando falhas parciais são aceitáveis
Resumo comparativo
Promise.all→ tudo ou nadaPromise.any→ primeira que der certoPromise.allSettled→ status de todas
try/catch desnecessários. Resumo da aula para nunca mais esquecer
Promise.anyresolve na primeira Promise bem-sucedida- Falhas são ignoradas até todas falharem
Promise.allSettlednunca falha- Ele retorna o status de cada Promise
- Esses métodos tornam o código mais robusto
Na próxima aula, vamos conhecer o Top-level await — e entender como usar await fora de funções.
HARDWARE
Entendendo o seu computador
O que há dentro do meu computador?
Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.
Você Sabia?
Senhas
Digitar senhas em computadores de uso coletivo é extremamente perigoso, pois além de softwares de monitoramento, existem dispositivos de hardware que podem capturar suas senhas. Evite ao máximo acessar sites de bancos a partir destes computadores. Veja mais aqui.
Inteligência artificial
O primeiro jogo a fazer uso de uma Inteligência Artificial foi o Mouse in the Maze, criado em 1955, na União Soviética. Você pode saber mais sobre ele clicando aqui.
Mortal Kombat - O Filme
O filme Mortal Kombat, inspirado no jogo de mesmo nome, faturou 23 milhões de dólares apenas no fim de semana de estreia nos EUA. Ainda sobre este título de sucesso, outra cifra que impressiona é o faturamento ao longo do primeiro ano: 1 bilhão de dólares no mundo todo.
ENIAC
O ENIAC, primeiro computador valvulado do mundo, possuía 17.000 válvulas, 500.000 pontos de solda, 30 toneladas de peso e ocupava uma área de 180 metros quadrados. Clique aqui e conheça mais sobre a história dos computadores.
PC com barulho?
Excesso de barulho dentro do seu gabinete, principalmente logo que você o liga, pode ser sintoma de problemas nas ventoinhas, que podem precisar ser limpas ou trocadas. Entre em contato com um técnico de sua confiança e verifique isso o quanto antes.










