Junior — Middle
How do async/await and Promise.all differ when working with asynchronous operations in JavaScript?
sobes.tech AI
Answer from AI
async/await and Promise.all are different mechanisms for handling asynchronous operations in JavaScript, which are often used together but solve different tasks.
-
async/await is syntactic sugar over promises, allowing you to write asynchronous code in a synchronous style. It enables waiting for a promise to resolve before continuing.
-
Promise.all takes an array of promises and returns a new promise that:
- resolves when all promises in the array are successfully completed,
- rejects if at least one promise is rejected.
Example of using them together:
async function fetchData() {
const results = await Promise.all([
fetch(url1),
fetch(url2),
fetch(url3)
]);
// results is an array of responses
}
Here, Promise.all runs all requests in parallel, and await waits for all of them to finish.
If you use only await sequentially:
async function fetchDataSequential() {
const res1 = await fetch(url1);
const res2 = await fetch(url2);
const res3 = await fetch(url3);
}
the requests will be executed sequentially, which is slower.
In summary:
async/awaitsimplifies reading asynchronous code.Promise.allallows running multiple asynchronous operations in parallel and waiting for all of them.