𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗣𝗿𝗼𝗺𝗶𝘀𝗲𝘀
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.
