Até aqui, tudo o que fizemos em JavaScript seguiu uma lógica simples: uma linha executa, depois a próxima, depois a outra.

Mas aplicações modernas precisam lidar com coisas que levam tempo: buscar dados de uma API, esperar uma resposta do servidor, carregar arquivos, aguardar ações do usuário.

Para entender como o JavaScript lida com isso, precisamos compreender um conceito fundamental: assincronicidade.

🎯 Objetivo da aula

Ao final desta aula, você será capaz de:

  • Entender o que é código síncrono
  • Entender o que é código assíncrono
  • Saber por que a assincronicidade é necessária
  • Compreender o comportamento do JavaScript diante de tarefas demoradas
  • Preparar a mente para Promises, async e await

Primeiro: o que é código síncrono?

Código síncrono é aquele que executa uma tarefa de cada vez, sempre esperando a anterior terminar.

É como uma fila única: só passa para a próxima pessoa quando a atual termina.

 
          console.log("Início"); 
          console.log("Processando"); 
          console.log("Fim"); 

A execução acontece exatamente nessa ordem.

 
            console.log("Início"); 
            // Saída será "Início" 
            console.log("Processando"); 
            // Saída será "Processando" 
            console.log("Fim"); 
            // Saída será "Fim" 

O problema do código síncrono

Agora imagine que uma dessas tarefas demore muito.

Por exemplo: buscar dados de um servidor que leva 5 segundos para responder.

Se o JavaScript esperasse isso de forma síncrona, a página inteira ficaria travada.

Em aplicações web, travar a interface é uma experiência péssima para o usuário.

A vida real ajuda a entender

Imagine que você está cozinhando:

  • Você coloca água para ferver
  • Enquanto isso, corta os legumes
  • Depois, prepara o molho

Você não fica parado olhando a água ferver.

Isso é pensar de forma assíncrona.

Então… o que é código assíncrono?

Código assíncrono permite que o JavaScript:

  • Inicie uma tarefa demorada
  • Continue executando outras tarefas
  • Volte para a tarefa demorada quando ela terminar

Ou seja: ele não fica esperando parado.

Um primeiro contato com assincronicidade

Veja este exemplo simples usando setTimeout:

 
              console.log("Início");
              setTimeout(() => 
              {
              console.log("Demorado");
              }, 2000);
              console.log("Fim");

Vamos analisar a saída:

 
  console.log("Início"); 
  // Saída será "Início" 
  console.log("Fim"); 
  // Saída será "Fim" 
  console.log("Demorado"); 
  // Saída será "Demorado" (após 2 segundos) 

Mesmo estando no meio do código, o trecho demorado é executado por último.

Isso parece estranho… mas é poderoso

O JavaScript:

  • Inicia a tarefa demorada
  • Não espera ela terminar
  • Continua executando o código
  • Volta quando a tarefa fica pronta

Esse comportamento é o que permite:

  • Páginas responsivas
  • Botões clicáveis enquanto dados carregam
  • Aplicações modernas e fluidas

O JavaScript é assíncrono por natureza?

Aqui vai um ponto muito importante:

O JavaScript é síncrono por padrão, mas possui mecanismos para lidar com tarefas assíncronas.

Esses mecanismos incluem:

  • Callbacks
  • Promises
  • async / await

E é exatamente isso que vamos estudar nas próximas aulas.

Resumo da aula para nunca mais esquecer

  • Código síncrono executa uma tarefa por vez
  • Tarefas demoradas podem travar a aplicação
  • Assincronicidade permite continuar executando código
  • O JavaScript lida com isso de forma inteligente
  • Esse conceito é base para Promises e async/await

Na próxima aula, vamos ver o primeiro mecanismo prático de assincronicidade: Callbacks.


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 é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.


Criar um jogo é muito mais complexo do que parece. São milhares, às vezes, milhões de linhas de código. Isso não é exagero! Apenas o jogo Ultima Online possui 6.006.313 linhas de programação, totalizando 25.103.295 palavras


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.


Utilizar seu notebook em camas, sofás ou qualquer superfície macia pode obstruir as entradas e saídas de ar, elevando a temperatura e provocando danos a diversos componentes. Utilize-o sempre sobre uma superfície rígida. Saiba mais aqui.


O Playstation só nasceu porque uma parceria entre Sony e Nintendo, para desenvolver uma unidade de CD para o Super Nintendo, fracassou. Clique aqui e saiba mais.