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

Tags:

O SEU COMPUTADOR ESTÁ TRAVANDO, DANDO "TELA AZUL" E DOR DE CABEÇA?

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.

Clique na imagem abaixo e confira mais detalhes do curso:

Super Técnico 2.0

CLIQUE AQUI E SAIBA MAIS

Sobre o Autor

Benedito Silva Júnior
Benedito Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *