⚙️9.2.1 - O que é assíncrono?

Quando algo é assíncrono, significa que não acontece imediatamente, e não bloqueia o restante do código enquanto espera.

🧠 Exemplo tradicional:

Você liga para uma pizzaria e faz um pedido. Enquanto a pizza não chega, você continua fazendo outras coisas. Quando ela chega, você recebe uma notificação (o entregador toca a campainha).

→ Isso é assíncrono: você solicitou, esperou, mas não ficou parado esperando.


⏳ O que é uma Promise?

Uma Promise (promessa) é um objeto do JavaScript que representa um valor que ainda não está disponível, mas estará no futuro.

Ela pode estar em três estados:

Estado
Significado

pending

Aguardando o resultado

fulfilled

A operação foi bem-sucedida

rejected

A operação falhou (erro)


🔄 Como isso se conecta com o fetch()?

A função fetch() é assíncrona e retorna uma Promise.

Ou seja:

  • Ela não bloqueia o código enquanto espera a resposta do servidor.

  • Quando a resposta chega, você encadeia ações com .then() e trata erros com .catch().

✅ Versão moderna com async/await

🧠 Como funciona?

  • await espera a Promise resolver, mas sem travar o restante do sistema.

  • async transforma a função para que você possa usar await dentro dela.

Exemplo com async/await:

async function buscarUsuario() {
  try {
    const response = await fetch('https://jsonplaceholder.typicode.com/users/1');
    const data = await response.json();
    console.log('Usuário:', data);
  } catch (error) {
    console.error('Erro:', error);
  }
}

buscarUsuario();

🔎 Vantagens do async/await:

  • Código mais limpo e fácil de entender

  • Evita o "efeito cascata" de muitos .then()

🧷 Conclusão

  • JavaScript é uma linguagem que suporta operações assíncronas.

  • fetch() retorna uma Promise, que é resolvida quando a resposta da API chega.

  • Você pode lidar com ela de duas formas:

    • .then() / .catch() (modo tradicional)

    • async / await (modo moderno e mais legível)

Last updated