Entendendo Promises em JavaScript
As Promises são fundamentais para lidar com operações assíncronas em JavaScript, como chamadas de API ou leituras de arquivos. Vou te explicar como elas funcionam e mostrar alguns exemplos de código.
Uma Promise é um objeto que representa a eventual conclusão ou falha de uma operação assíncrona. Ela pode estar em um destes três estados:
- Pending: Estado inicial, não cumprida nem rejeitada.
- Fulfilled: Operação completada com sucesso.
- Rejected: Operação falhou.
Exemplo Básico de uma Promise
let promise = new Promise(function(resolve, reject) {
// Faz alguma coisa assíncrona e chama resolve ou reject
setTimeout(() => {
resolve("Dados carregados com sucesso!");
}, 2000);
});
promise.then(
result => console.log(result), // Exibe "Dados carregados com sucesso!" após 2 segundos
error => console.log(error) // Exibe um erro, se houver
);
Encadeamento de Promises
Você pode encadear várias operações assíncronas usando .then()
:
function getDados() {
return new Promise(resolve => {
setTimeout(() => {
resolve("Dados Iniciais");
}, 2000);
});
}
getDados()
.then(dados => {
console.log(dados); // Primeiros dados
return "Mais dados";
})
.then(maisDados => {
console.log(maisDados); // "Mais dados"
});
Tratamento de Erros
Usamos .catch()
para tratar erros em Promises:
getDados()
.then(dados => {
throw new Error("Erro ao processar dados");
})
.catch(error => {
console.error(error); // Captura qualquer erro que ocorra durante as promises
});
Concluindo
Promises são uma ferramenta poderosa para escrever código assíncrono mais legível e manutenível. Experimente incorporá-las em seus projetos para lidar com operações assíncronas!