javascript
async/await vs Promise.all(): quando executar em paralelo?
Aprenda a diferença entre awaits sequenciais e Promise.all, quando executar requisições em paralelo e como melhorar a performance do JavaScript.

async/await vs Promise.all(): quando executar em paralelo?
Considere este código:
const user = await getUser();
const posts = await getPosts();
const notifications = await getNotifications();
Parece correto. E realmente pode estar.
Mas existe um detalhe: cada operação aguarda a anterior terminar.
O problema
Notas:
Promise.all() não substitui async/await. Ele permite aguardar várias Promises juntas quando elas podem ser executadas simultaneamente.
Tecnologias Utilizadas
- JavaScript
- Promises
- async/await
Como fazer?
Passo a Passo
Passo 1: Identifique dependências
Passo 2: Separe tarefas independentes
Passo 3: Utilize Promise.all
Passo 4: Trate erros
🐢 Execução sequencial
const user = await getUser();
const posts = await getPosts();
const notifications = await getNotifications();
⚡ Execução em paralelo
const [
user,
posts,
notifications,
] = await Promise.all([
getUser(),
getPosts(),
getNotifications(),
]);
Agora:
getUser ─────────────┐
getPosts ────────────┼── resultado
getNotifications ───┘
Quando NÃO utilizar?
const user = await getUser();
const posts = await getPosts(user.id);
Aqui precisamos primeiro conhecer user.id.
Tratamento de erros
const results = await Promise.allSettled([
getUser(),
getPosts(),
getNotifications(),
]);
Promise.allSettled() é útil quando queremos receber o resultado de todas as operações, inclusive as que falharam.
✅ Resultado Final
Promise.all() pode melhorar bastante o tempo de resposta quando temos operações independentes.
🛠️ Considerações Finais
O objetivo não é transformar todo await em Promise.all().
Primeiro entenda a dependência dos dados. Depois escolha a estratégia.


