0Pricing
JavaScript Academy · Aula

Promises — estados, encadeamento e tratamento de erros

Crie e use Promises: estados (pendente, cumprida e rejeitada), encadeamento com then e tratamento de erros com catch/finally

Promises — estados, encadeamento e tratamento de erros é uma aula grátis de JavaScript Academy no CoddyKit. Esta é a aula 2 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de JavaScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de JavaScript Academy inclui 3 aulas no total.

Introdução às promessas

Objetivo: Aprenda pequenos padrões de promessas.

  • Estados: pendente → cumprida/rejeitada
  • Encadeamento com then
  • Erros de captura
  • Limpeza final
Promises — estados, encadeamento e tratamento de erros — ilustração 1

Resolver uma promessa

Uma promessa começa pendente e se torna cumprida quando você chama resolve.

// Create a Promise and resolve it
function waitMs(ms) {
  return new Promise(function (resolve) {
    setTimeout(function () {
      resolve("done");
    }, ms);
  });
}

console.log("Start");
waitMs(10).then(function (msg) {
  console.log("Resolved:", msg);
});
Promises — estados, encadeamento e tratamento de erros — ilustração 2

Rejeitar e capturar

Use rejeitar(Erro) para falhas. Uma captura trata qualquer rejeição acima dela.

// Reject to signal an error; handle with catch
function maybeFail(ok) {
  return new Promise(function (resolve, reject) {
    if (ok) {
      resolve("ok");
    } else {
      reject(new Error("bad"));
    }
  });
}

maybeFail(true)
  .then(function (v) {
    console.log("A:", v);
    return maybeFail(false);
  })
  .catch(function (e) {
    console.log("Caught:", e.message);
  });
Promises — estados, encadeamento e tratamento de erros — ilustração 3

Noções básicas do encadeamento com then

Cada then pode retornar um valor (ou uma promessa). A próxima etapa o recebe.

// Chain then steps; return values flow to the next then
Promise.resolve(2)
  .then(function (n) {
    return n * 3;
  })
  .then(function (n) {
    console.log("Result:", n);
  });
Promises — estados, encadeamento e tratamento de erros — ilustração 4

Limpeza final

Finalmente é usado para a limpeza após o sucesso ou um erro; ele não recebe o valor nem o erro.

// finally runs whether fulfilled or rejected
function task(ok) {
  return new Promise(function (resolve, reject) {
    ok ? resolve("yay") : reject(new Error("oops"));
  });
}

task(false)
  .catch(function (e) {
    console.log("Handled:", e.message);
  })
  .finally(function () {
    console.log("Cleanup done");
  });
Promises — estados, encadeamento e tratamento de erros — ilustração 5

Visão geral de Promise.all

Promise.all é resolvido com uma matriz de resultados ou rejeitado se um deles falhar.

// Promise.all waits for all; rejects fast if any fail
const a = waitMs(5);
const b = Promise.resolve("B");

Promise.all([a, b])
  .then(function (values) {
    console.log("All:", values);
  })
  .catch(function (e) {
    console.log("All failed:", e.message);
  });
Promises — estados, encadeamento e tratamento de erros — ilustração 6

Questionário sobre tratamento de erros de promessas

Verificação rápida: onde tratar erros?

Promises — estados, encadeamento e tratamento de erros — ilustração 7

Recapitulação

Recapitulação: Resolva em caso de sucesso, rejeite em caso de erros, encadeie etapas com then, trate problemas com captura e use finalmente para a limpeza.

Promises — estados, encadeamento e tratamento de erros — ilustração 8

Perguntas Frequentes

A aula “Promises — estados, encadeamento e tratamento de erros” é grátis?

Sim — o texto completo de “Promises — estados, encadeamento e tratamento de erros” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de JavaScript Academy, atualize para CoddyKit PRO. O curso de JavaScript Academy inclui 3 aulas no total.

O que vou aprender em “Promises — estados, encadeamento e tratamento de erros”?

Crie e use Promises: estados (pendente, cumprida e rejeitada), encadeamento com then e tratamento de erros com catch/finally Você pratica JavaScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar JavaScript Academy?

Nenhuma experiência prévia é necessária. JavaScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 3.

Quanto tempo leva a aula “Promises — estados, encadeamento e tratamento de erros”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de JavaScript Academy?

Sim. Cada aula de JavaScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Loop de eventos e fundamentos de tarefas e microtarefas
  2. Promises — estados, encadeamento e tratamento de erros
  3. Promise.all / any / race / allSettled — escolha a ferramenta certa
← Voltar para JavaScript Academy