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.
Aprenda através de projetos reais e aulas práticas. São 20 cursos completos + cursos bônus. Grupos privados exclusivos, atualizações constantes e lives semanais.
Python, PHP, Java Script, CSS, Node, Angular JS, MySQL, Photoshop, Flutter, AWS, Apache e muito mais!
CLIQUE NA IMAGEM ABAIXO E CONFIRA MAIS DETALHES:
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
Sobre o Autor
0 Comentários