No await
in Promise.all
array Has Fix
Description
Using await
inside an inline Promise.all
array is usually a mistake, as it defeats the purpose of running the promises in parallel. Instead, the promises should be created without await
and passed to Promise.all
, which can then be awaited.
YAML
yaml
id: no-await-in-promise-all
language: typescript
rule:
pattern: await $A
inside:
pattern: Promise.all($_)
stopBy:
not: { any: [{kind: array}, {kind: arguments}] }
fix: $A
Example
ts
const [foo, bar] = await Promise.all([
await getFoo(),
getBar(),
(async () => { await getBaz()})(),
])
Diff
ts
const [foo, bar] = await Promise.all([
await getFoo(),
getFoo(),
getBar(),
(async () => { await getBaz()})(),
])
Contributed by
Inspired by Alvar Lagerlöf