Promises: Promessas de Valor Futuro
O que vais aprender nesta aula:
- O conceito de Promise (Pendente, Resolvida, Rejeitada)
- Como criar uma Promise:
new Promise(...) - Como consumir uma Promise:
.then()e.catch()
🧠 Teoria (com Analogia e Contexto Real)
No código assíncrono, não sabemos SE nem QUANDO o resultado chega. A Promise é um objeto que representa esse "talvez".
🎁 Analogia da Encomenda Online
1. Pending (Pendente): Acabaste de encomendar. Ainda não tens o produto, mas tens uma "promessa" de entrega.
2. Resolved (Resolvida): O estafeta tocou à campainha. A promessa foi cumprida (Sucesso!).
3. Rejected (Rejeitada): Recebes um email a dizer que houve um extravio. A promessa falhou (Erro).
💻 Prática (Orientada e Progressiva)
A estrutura de uma Promessa:
Criar e Consumir
// 1. A Promessa
const minhaPromessa = new Promise((resolve, reject) => {
let sucesso = true; // Simulação
if (sucesso) {
resolve("Pizza entregue! 🍕");
} else {
reject("O estafeta perdeu-se. 😢");
}
});
// 2. O Consumo
minhaPromessa
.then((mensagem) => {
console.log("Sucesso: " + mensagem);
})
.catch((erro) => {
console.log("Erro: " + erro);
});
🧪 Simulador de Pedido Uber Eats
Clica para pedir. Pode demorar entre 1 a 3 segundos. Há 50% de hipótese de falhar!