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

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);
});

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);
});

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);
});

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");
});

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);
});

Questionário sobre tratamento de erros de promessas
Verificação rápida: onde tratar erros?

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.

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
- Loop de eventos e fundamentos de tarefas e microtarefas
- Promises — estados, encadeamento e tratamento de erros
- Promise.all / any / race / allSettled — escolha a ferramenta certa