Sobes.tech
Middle

Como funciona a Promise em JavaScript?

sobes.tech IA

Resposta da IA

  • Objeto que representa a possível conclusão (ou falha) de uma operação assíncrona e o seu valor resultante.
  • Estados de uma promessa:
    • pending: estado inicial, nem cumprido nem rejeitado.
    • fulfilled: indica que a operação foi concluída com sucesso.
    • rejected: indica que a operação terminou com um erro.
  • A transição de pending para fulfilled ou rejected ocorre uma única vez e de forma irreversível.
  • Métodos:
    • .then(onFulfilled, onRejected): aceita duas funções de callback. A primeira (onFulfilled) é chamada em caso de sucesso, a segunda (onRejected) em caso de erro. Ambos os argumentos são opcionais. Retorna uma nova promessa.
    • .catch(onRejected): forma abreviada de .then(null, onRejected). Usada para tratar erros. Retorna uma nova promessa.
    • .finally(onFinally): é chamado independentemente do resultado da promessa (sucesso ou erro). Útil para limpar recursos. Retorna uma nova promessa.
  • Criação de uma promessa:
new Promise((resolve, reject) => {
  // Operação assíncrona
  const success = true;
  if (success) {
    resolve("Operação bem-sucedida!"); // Estado fulfilled
  } else {
    reject("Algo correu mal..."); // Estado rejected
  }
});
  • Encadeamento de promessas: .then(), .catch(), .finally() retornam promessas, permitindo criar cadeias para executar operações assíncronas em sequência.
fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Erro:', error));