Back to Home
Async

How to Run Multiple Promises Concurrently

Use Promise.all() to wait for multiple promises

Quick Answer (2024 ES6+ Way)

javascript
const promises = [fetch(url1), fetch(url2), fetch(url3)];
const results = await Promise.all(promises);
console.log(results); // Array of all responses

Live Example

javascript
async function fetchMultiple() {
  try {
    const [users, posts, comments] = await Promise.all([
      fetch('https://jsonplaceholder.typicode.com/users/1'),
      fetch('https://jsonplaceholder.typicode.com/posts/1'),
      fetch('https://jsonplaceholder.typicode.com/comments/1')
    ]);
    
    const userData = await users.json();
    const postData = await posts.json();
    const commentData = await comments.json();
    
    return { userData, postData, commentData };
  } catch (error) {
    console.error('One or more requests failed:', error);
  }
}

Common Variations

Promise.allSettled()
javascript
const results = await Promise.allSettled(promises);
// Returns all results, even if some fail
// [{status: 'fulfilled', value: ...}, {status: 'rejected', reason: ...}]
Promise.race()
javascript
const fastest = await Promise.race(promises);
// Returns first promise to complete

❌ Don't Do This (Outdated Way)

Avoid sequential awaits for independent operations

javascript
// DON'T DO THIS (slower)
const user = await fetch(url1);
const posts = await fetch(url2);
const comments = await fetch(url3);

Browser Support

Works in all modern browsers (ES2015+)

#promise#async#concurrent