Call async/await functions in parallel Call async/await functions in parallel javascript javascript

Call async/await functions in parallel


You can await on Promise.all():

await Promise.all([someCall(), anotherCall()]);

To store the results:

let [someResult, anotherResult] = await Promise.all([someCall(), anotherCall()]);

Note that Promise.all fails fast, which means that as soon as one of the promises supplied to it rejects, then the entire thing rejects.

const happy = (v, ms) => new Promise((resolve) => setTimeout(() => resolve(v), ms))const sad = (v, ms) => new Promise((_, reject) => setTimeout(() => reject(v), ms))Promise.all([happy('happy', 100), sad('sad', 50)])  .then(console.log).catch(console.log) // 'sad'