XP 0

async e await

Esperar de um jeito legível

Para esperar o resultado de uma Promise sem travar, o JS moderno usa async e await:

app.get("/produtos", async function (req, res) {
  const produtos = await db.query("SELECT * FROM produtos");
  res.json(produtos);
});
  • await — "espere esta operação terminar e me dê o resultado antes de seguir"
  • async — marca a função como "esta função pode usar await"

⚠️ A dupla é obrigatória: await só funciona dentro de uma função marcada como async. E se você esquecer o await, a variável guarda a promessa (uma Promise), não os dados — um bug clássico.

🧠 O await faz o código assíncrono parecer sequencial ("faça isso, depois aquilo") — fácil de ler — mas sem travar o servidor. O melhor dos dois mundos.

Pontos-chave

  • await operação
    espera o resultado antes de seguir, sem travar.
  • async function
    marca a função que pode usar await.