𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗣𝗿𝗼𝗺𝗶𝘀𝗲𝘀

Uma Promise representa o resultado de uma tarefa assíncrona.

Você usa Promises para chamadas de API, consultas de banco de dados e leitura de arquivos.

Uma Promise possui três estados:

  • Pending: A tarefa ainda está em execução.
  • Fulfilled: A tarefa foi concluída com sucesso.
  • Rejected: A tarefa falhou com um erro.

A estrutura é assim:

const promise = new Promise((resolve, reject) => { // O executor é executado imediatamente });

Você lida com os resultados usando estes métodos:

  • .then(): É executado quando a promise é bem-sucedida.
  • .catch(): É executado quando a promise falha.
  • .finally(): É executado quando a tarefa termina, independentemente do resultado.

Regras importantes para lembrar:

  • O primeiro resultado vence. Se você chamar resolve() e depois reject(), o resolve vence.
  • A função executora é executada de forma síncrona.
  • Usar async e await torna seu código mais fácil de ler do que usar .then().

Lidando com múltiplas promises:

  • Promise.all(): Segue uma abordagem fail-fast. Se uma promise falhar, todo o grupo falha.
  • Promise.allSettled(): Aguarda que todas as promises terminem. Retorna os resultados mesmo que algumas tarefas falhem.

Resumo:

  • Promise: Um manipulador de resultados assíncronos.
  • resolve: Indica sucesso.
  • reject: Indica falha.
  • async/await: Uma maneira mais limpa de escrever promises.
  • Promise.all: Para no primeiro erro.
  • Promise.allSettled: Conclui todas as tarefas.

Fonte: https://dev.to/malik786/javascript-promises-2hn4