🚀 Promise.all() e Promise.allSettled() no Node.js: mais performance para aplicações assíncronas
Uma das maiores vantagens do Node.js é sua capacidade de lidar com múltiplas operações assíncronas ao mesmo tempo. 💡
Quando trabalhamos com APIs, bancos de dados, arquivos ou
serviços externos, muitas vezes precisamos executar várias
operações simultaneamente — e é exatamente aí que entram
Promise.all() e Promise.allSettled().
🎯 O que é o Promise.all()?
O Promise.all() recebe um array de Promises e
executa todas elas em paralelo. A Promise resultante só será
resolvida quando todas as operações forem
concluídas com sucesso.
Ütil em cenários como:
- 🌐 Carregar múltiplas APIs
- 💾 Buscar dados em diferentes tabelas
- 📂 Ler vários arquivos ao mesmo tempo
- ☁️ Processar integrações simultâneas
🔥
O grande benefício está na performance. Imagine
três operações que levam 3 segundos cada. Executadas em
sequência: 9 segundos. Com Promise.all(): ~3
segundos. 🚀
📌 Detalhe importante: se apenas
uma Promise falhar, todo o
Promise.all() será rejeitado imediatamente — mesmo
que outras operações tenham sido concluídas com sucesso.
⚡ O que é o Promise.allSettled()?
O Promise.allSettled() também executa várias
Promises em paralelo, mas com uma diferença fundamental:
- ✅ Ele sempre retorna o resultado de todas as operações
- ✅ Não importa se algumas falharam
- ✅ Cada Promise retorna seu status individual
✔️ fulfilled
A Promise foi concluída com sucesso e o valor resultante está disponível.
❌ rejected
A Promise falhou e o motivo do erro está disponível para tratamento.
Isso torna o Promise.allSettled() ideal para
cenários onde falhas parciais são aceitáveis,
como:
- 🔹 Carregamento de múltiplos widgets independentes
- 🔹 Dashboards com várias fontes de dados
- 🔹 Integrações externas opcionais
- 🔹 Processamento em lote
- 🔹 Relatórios assíncronos
⚡ Em resumo
-
✅
Promise.all()→ falha se uma Promise falhar -
✅
Promise.allSettled()→ retorna todos os resultados, mesmo com erros
Dominar esses métodos é um passo importante para escrever aplicações Node.js mais rápidas, modernas e preparadas para cenários reais de alta concorrência. 🚀💚