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.all
  • Promise.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 
Se uma Promise falhar, 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 certo
  • Promise.race → vale a primeira a terminar
Esses métodos são a base para entender Promises modernas.

Resumo da aula para nunca mais esquecer

  • Promise.all executa tudo em paralelo
  • Falha se qualquer Promise falhar
  • Promise.race resolve 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.

  • Gabinetes

  • Placas-Mãe

  • Processadores

  • Memória

  • Fontes

  • Drives Ópticos

  • Discos Rígidos

  • SSD

  • Placas de Som

  • Placas de Vídeo

Você Sabia?

O famoso título Final Fantasy, da Square Enix, tem este nome exatamente porque se tratava da última esperança da empresa, que estava à beira da falência quando o lançou. Clique aqui e conheça detalhes dessa história.


O primeiro computador a conseguir rodar o jogo Spacewar era o PDP-1, que custava 120 mil dólares e pertencia ao Massachusetts Institute of Technology. O jogo demorou 200 horas para ser desenvolvido, em 1962, e seu criador foi um cientista da computação chamado Steve Russel.


O épico jogo River Raid, do Atari, foi desenhado e boa parte de sua programação foi feita por uma mulher: Carol Shaw, uma excelente programadora e funcionária da Activision em 1982. Saiba mais sobre a história deste incrível jogo, aqui.


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.


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.