Promises em JavaScript
Promises são uma das ferramentas mais importantes em JavaScript para lidar com operações assíncronas, como chamadas de API e tempo de espera de funções. Elas permitem que seu código continue a ser executado enquanto espera por uma operação para ser concluída, evitando bloqueios e melhorando o desempenho. Neste post, vamos ver o que são Promises em JavaScript, como funcionam e como você pode usá-las para criar um código JavaScript mais eficiente e organizado!
1. O que é uma Promise?
Uma Promise é um objeto que representa a eventual conclusão ou falha de uma operação assíncrona. Ela tem três estados:
- Pending (Pendente): Estado inicial, a operação ainda não foi concluída;
- Fulfilled (Concluída): A operação foi bem-sucedida;
- Rejected (Rejeitada): A operação falhou.
2. Criando uma Promise
Para criar uma Promise, usamos o construtor new Promise
, que recebe uma função com dois argumentos: resolve
(chamado quando a operação é bem-sucedida) e reject
(chamado quando ocorre uma falha).
const minhaPromise = new Promise((resolve, reject) => {
let sucesso = true;
if (sucesso) {
resolve("A operação foi bem-sucedida!");
} else {
reject("A operação falhou.");
}
});
3. Consumindo uma Promise com .then e .catch
Depois de criar uma Promise, você pode consumir o resultado usando o método .then()
para capturar o sucesso e .catch()
para capturar o erro.
minhaPromise
.then((mensagem) => {
console.log(mensagem); // "A operação foi bem-sucedida!"
})
.catch((erro) => {
console.error(erro); // "A operação falhou."
});
4. Lidando com várias Promises com Promise.all
Promise.all
permite que você execute várias Promises ao mesmo tempo e receba um resultado quando todas elas forem concluídas. Ele é útil para carregar dados múltiplos simultaneamente.
const promessa1 = Promise.resolve(3);
const promessa2 = new Promise((resolve) => setTimeout(resolve, 1000, "pronto!"));
const promessa3 = fetch("https://api.example.com/dados");
Promise.all([promessa1, promessa2, promessa3])
.then((resultados) => {
console.log(resultados);
})
.catch((erro) => {
console.error("Um erro ocorreu:", erro);
});
5. Usando async/await com Promises
A introdução de async/await
simplificou a forma de lidar com Promises, tornando o código mais legível. await
pausa a execução da função até que a Promise seja concluída.
async function executarOperacao() {
try {
const resposta = await fetch("https://api.example.com/dados");
const dados = await resposta.json();
console.log(dados);
} catch (erro) {
console.error("Erro ao buscar dados:", erro);
}
}
executarOperacao();
6. Outros métodos úteis: Promise.race e Promise.allSettled
Promise.race
: Retorna a primeira Promise que for concluída, seja ela resolvida ou rejeitada.Promise.allSettled
: Aguarda todas as Promises serem concluídas, mas retorna o resultado de todas elas, incluindo as que foram rejeitadas.
Promises são fundamentais para qualquer desenvolvedor JavaScript que trabalha com operações assíncronas.
Dúvidas ou sugestões sobre promises em JavaScript? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits
Aprenda a consertar o próprio computador como um profissional!
Especialize-se em manutenção preventiva e corretiva, diagnósticos de defeitos e upgrades com aulas passo a passo sem enrolação.
Torne-se também um técnico diferenciado e conquiste o emprego dos seus sonhos com este curso completo de Montagem e Manutenção de Desktops e Notebooks.
Sobre o Autor
0 Comentários