The rendered spec text. Playground Link
Introduce await.all / await.race / await.allSettled / await.any to simplify the usage of async functions
Stage: 1
Champions: Jack Works, Jordan Harband
When developers use async functions, they have to know about Promise if they want to handle multiple tasks concurrently (Promise.all
, eg), this is some kind of "abstraction leak".
This proposal is intended to fix the problem by introducing concurrent Promise utils in the async-await style.
// before
await Promise.all(users.map(async x => fetchProfile(x.id)))
// after
await.all users.map(async x => fetchProfile(x.id))
Syntax:
await.all expr
// eq: await Promise.all(expr)
await.race expr
// eq: await Promise.race(expr)
await.allSettled expr
// eq: await Promise.allSettled(expr)
await.any expr
// eq: await Promise.any(expr)