Avançado13 min de leitura

Promises

Um conceito de javascript assíncrono que toda pessoa desenvolvedora JavaScript precisa dominar.

Introdução

Promises é uma parte central de JavaScript Assíncrono em JavaScript. Esta lição explica o que é, como a linguagem de fato implementa isso e os padrões e armadilhas que separam o uso "copiar e colar" do entendimento real. Leia o exemplo de código e depois fixe o conceito com os pontos-chave.

Por que existe

Promises existe para resolver um problema concreto do dia a dia em JavaScript. Entender por que foi criado — a aresta afiada ou o padrão repetitivo que ele elimina — é o que permite reconhecer o momento certo de usá-lo, em vez de recorrer a ele por hábito.

Analogia

Pense em Promises como uma ferramenta de formato bem definido na sua caixa de JavaScript: poderosa quando o problema tem o formato certo, desajeitada quando forçada. A habilidade está em reconhecer o encaixe rapidamente.

Como funciona

Por baixo dos panos, Promises segue regras que a engine aplica de forma consistente. Aprenda essas regras uma vez — o que a linguagem avalia, em que ordem e o que ela captura ou copia — e os casos surpreendentes deixam de surpreender.

No código

TypeScriptCriando e encadeando uma Promise
function delay(ms: number) {
  return new Promise<void>((resolve) => setTimeout(resolve, ms))
}

delay(200)
  .then(() => fetch("/api/user"))
  .then((r) => r.json())
  .catch((err) => console.error(err))

Quando usar

Recorra a isso quando

  • O problema tem claramente o formato para o qual Promises foi feito.
  • Usar Promises deixa o código mais legível, não apenas mais curto.
  • Você entende a regra bem o suficiente para prever o resultado.

Evite quando

  • Uma construção mais simples e óbvia expressa a mesma intenção.
  • Usar Promises esconderia um comportamento que o time teria que adivinhar.

Trade-offs

Vantagens

  • Expressa um padrão comum de JavaScript de forma clara e idiomática.
  • Reduz boilerplate e toda uma classe de bugs manuais.

Desvantagens

  • Mal usado, Promises esconde comportamento e cria bugs sutis.
  • Seus casos de borda precisam ser entendidos, não decorados.

Como todo recurso da linguagem, Promises troca um tipo de clareza por outro. Recorra a ele quando deixa a intenção óbvia e evite quando uma construção mais simples se lê melhor.

Erros comuns

Fique atento a

  • Usar Promises sem entender o que a engine realmente faz.
  • Copiar um trecho e supor que os casos de borda batem com a sua situação.

Pense como sênior

Visão de Engenheiro(a) Sênior

Pessoas sêniores explicam Promises em termos das regras da linguagem — ordem de avaliação, referências vs cópias, síncrono vs assíncrono — e não apenas do uso.

Visão de Engenheiro(a) Sênior

Elas conhecem os casos de borda de Promises e escrevem código que o time consegue ler sem precisar executar.

Lembre-se

Promises segue regras consistentes — aprenda a regra, não só a sintaxe.

Lembre-se

Legível vence esperto: use Promises quando ele esclarece a intenção.

Resumo

Promises é um bloco de construção de javascript assíncrono em JavaScript. Conheça a regra que a engine aplica, as armadilhas comuns e quando uma alternativa mais simples se lê melhor.

Pontos-chave

  • Promises resolve um problema específico e recorrente do JavaScript.
  • O comportamento segue regras previsíveis da engine.
  • Prefira legibilidade a esperteza ao aplicá-lo.

Suas anotações

Salvo neste dispositivo