In ES7/ES2016, using multiple await statements does not execute the functions in parallel. Instead, they are executed sequentially, much like chaining .then() with promises.
Example:
await someCall(); await anotherCall();
In this example, anotherCall() will only be called once someCall() is completed.
Parallelizing Async Function Calls
To execute async functions in parallel, there are a few options:
The simplest approach in Node.js is to use Promise.all() to wrap the async functions you want to execute concurrently:
await Promise.all([someCall(), anotherCall()]);
This will create a single promise that represents the completion of all the input promises.
If you need to store the results, you can use destructuring in the await statement:
let [someResult, anotherResult] = await Promise.all([someCall(), anotherCall()]);
Promise.all will fail fast. This means that if any of the input promises rejects, the entire operation will be rejected with that error.
The above is the detailed content of How Can I Execute Async Functions Concurrently in JavaScript?. For more information, please follow other related articles on the PHP Chinese website!