Agora que você já entende Promises e async/await, vamos aprender a trabalhar com múltiplas Promises ao mesmo tempo.
Para isso, o JavaScript oferece dois métodos fundamentais:
Promise.allPromise.race
Eles resolvem problemas diferentes — e entender essa diferença é essencial.
🎯 Objetivo da aula
Ao final desta aula, você será capaz de:
- Executar Promises em paralelo
- Entender o comportamento de
Promise.all - Entender o comportamento de
Promise.race - Escolher o método correto para cada cenário
Executando Promises em paralelo
Quando criamos várias Promises, elas podem executar ao mesmo tempo:
const tarefa1 = new Promise(resolve => setTimeout(() => resolve("Tarefa 1 concluída"), 1000) );
const tarefa2 = new Promise(resolve =>
setTimeout(() => resolve("Tarefa 2 concluída"), 500)
);
Agora vamos coordenar essas Promises.
Promise.all — “tudo ou nada”
Promise.all:
- espera todas as Promises resolverem
- retorna um array com os resultados
- falha se uma Promise falhar
Exemplo com Promise.all
Promise.all([tarefa1, tarefa2]) .then(resultados => { console.log(resultados); }); // Saída será: // ["Tarefa 1 concluída", "Tarefa 2 concluída"] Observe:
- a ordem do array segue a ordem das Promises
- não a ordem de finalização
E se uma Promise falhar?
const tarefa3 = Promise.reject("Erro na tarefa 3");
Promise.all([tarefa1, tarefa3, tarefa2])
.then(resultados => {
console.log(resultados);
})
.catch(erro => {
console.log(erro);
});
// Saída será: // Erro na tarefa 3 Promise.all falha imediatamente. Quando usar Promise.all?
- todas as tarefas são obrigatórias
- dependências críticas
- carregamento inicial de dados
Promise.race — “vale a primeira”
Promise.race:
- resolve ou rejeita com a primeira Promise finalizada
- não espera as outras
Exemplo com Promise.race
Promise.race([tarefa1, tarefa2]) .then(resultado => { console.log(resultado); }); // Saída será: // Tarefa 2 concluída A tarefa mais rápida vence.
E se a primeira falhar?
const tarefaFalhaRapida = new Promise((_, reject) => setTimeout(() => reject("Falha rápida"), 300) );
Promise.race([tarefaFalhaRapida, tarefa1])
.catch(erro => {
console.log(erro);
});
// Saída será: // Falha rápida Promise.race não distingue sucesso de erro. Quando usar Promise.race?
- timeouts
- requisições concorrentes
- limite de espera
Comparação direta
Promise.all→ tudo precisa dar certoPromise.race→ vale a primeira a terminar
Resumo da aula para nunca mais esquecer
Promise.allexecuta tudo em paralelo- Falha se qualquer Promise falhar
Promise.raceresolve com a primeira- Pode resolver ou rejeitar
- São métodos fundamentais das Promises
Na próxima aula, vamos conhecer as Promises modernas: Promise.any e Promise.allSettled.
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?
Mouse
O mouse foi criado em 9 de dezembro de 1968, por um americano chamado Douglas Engelbart, que o batizou de "XY Position Indicator for a Display System". Conheça a história do mouse clicando aqui.
Nintendo Wii
Nos primeiros oito dias após o lançamento do console Nintendo Wii foram vendidas 600 mil unidades. Isso equivale a quase um por segundo e estes incríveis números são referentes às vendas apenas nos EUA!
Computadores de 1,5 tonelada
Em 1949 a revista Popular Mechanics fez uma previsão para o futuro, dizendo: "Um dia os computadores pesarão menos do que 1,5 tonelada". E pensar que temos smartphones capazes de realizar milhões de vezes mais operações do que os computadores daquela época.
Tetris
Desde o seu lançamento, em 1985, o fantástico jogo Tetris vende pelo menos 70 milhões de unidades por ano em todo o mundo! Os dados são oficiais e fornecidos pela THQ, uma das distribuidoras do título.
Duck Hunt
Ao completar o nível 99 do jogo Duck Hunt, para Nintendo, o jogo retorna ao primeiro nível, mas um bug impede que se acerte os patos neste recomeço. Este é um exemplo do que é chamado no mundo dos games de "Kill Screen".










