DevPath · Aprenda a programar ESPTEN

Assincronia: promessas e async/await

Promessas

O que é uma promessa?

Uma promessa (Promise) é um objeto que representa o resultado de uma operação que ainda não terminou. Uma promessa está em um de três estados:

const promessa = new Promise((resolve, reject) => {
  const sucesso = true;
  if (sucesso) {
    resolve("Dados prontos!"); // cumprida
  } else {
    reject(new Error("Falhou")); // rejeitada
  }
});

Consumir uma promessa: then e catch

promessa
  .then((valor) => console.log("Sucesso:", valor))
  .catch((erro) => console.log("Erro:", erro.message));

Nas práticas, o verificador espera que suas promessas sejam resolvidas (usa await por dentro), então ele vai checar tanto a estrutura do seu código quanto o valor final que ele produz. O que você escrever será código assíncrono real.

Exemplos

Criar e consumir uma promessa

function tarefaRapida(ok) {
  return new Promise((resolve, reject) => {
    if (ok) resolve("feito");
    else reject(new Error("falha"));
  });
}
tarefaRapida(true).then((v) => console.log("Resultado:", v));
console.log("É promessa?", tarefaRapida(true) instanceof Promise);
Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
← O event loop e os callbacksasync / await e Promise.all →