Síncrono vs Assíncrono

Síncrono (Sincronizado): No código síncrono, as instruções são executadas uma de cada vez, na ordem em que aparecemNada acontece ao mesmo tempo. A próxima linha só executa depois que a anterior terminar. Tudo é sequencial.

🚀Assíncrono (Não bloqueia o código): No código assíncrono, algumas operações podem demorar (ex: buscar dados da internet). E o código não precisa esperar essas operações terminarem para continuar rodando. Isso evita que o programa fique travado enquanto espera uma resposta.

Uma Promise é um objeto que representa uma operação assíncrona que ainda não foi concluída, mas que será resolvida no futuro. Pode ter 3 estados:
1️⃣ Pendente (Aguardando resposta)
2️⃣ Resolvida (Deu certo ✅)
3️⃣ Rejeitada (Erro ❌)

| Exemplos Síncronos e Assíncronos

sincrono.js
console.log("Primeiro");  
console.log("Segundo");  
console.log("Terceiro");

A saída será sequencial: primeiro, segundo, terceiro.

assincrono.js
console.log("Primeiro");

setTimeout(() => {
  console.log("Segundo"); // Esse código será executado depois de 2 segundos.
}, 2000);

console.log("Terceiro");

A saída será: primeiro, terceiro e só depois de 2 segundos segundo.