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:
- pendente (pending): ainda não se sabe o resultado.
- cumprida (fulfilled): terminou bem, com um valor.
- rejeitada (rejected): falhou, com um erro.
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));
.then(fn)é executado se a promessa for cumprida..catch(fn)é executado se for rejeitada.- É possível encadear vários
.then, devolvendo um valor em cada passo.
Nas práticas, o verificador espera que suas promessas sejam resolvidas (usa
awaitpor 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);