Promise.all()

Promise.all([promise1, promise2, …])

Czeka jednocześnie na wszystkie Promise. Gdy wszystkie zostaną spełnione, zostaje spełniony z tablicą wyników w tej samej kolejności. Przy pierwszym błędzie zostaje od razu odrzucony.

Parametry

  • iterable – Promise albo wartości (wartości uznaje się za spełnione).

Wartość zwracana

Promise z tablicą wyników.

Przykłady

const wait = (ms, value) => new Promise((done) => setTimeout(() => done(value), ms));
const fail = (ms, message) => new Promise((_, reject) => setTimeout(() => reject(new Error(message)), ms));
const start = Date.now();
const [user, orders] = await Promise.all([wait(100, 'Jana'), wait(100, [1024, 1025])]);
console.log(user, orders, Date.now() - start < 190 ? 'jednocześnie' : 'po kolei');
try {
  await Promise.all([wait(50, 'ok'), fail(10, 'Zamówienia niedostępne')]);
} catch (e) {
  console.log('Błąd:', e.message);
}

Wynik:

Jana [ 1024, 1025 ] jednocześnie
Błąd: Zamówienia niedostępne

Na co uważać

  • Jeden błąd odrzuca cały wynik, a wyniki pozostałych przepadają – jeśli potrzebujesz wszystkich wyników łącznie z błędami, użyj Promise.allSettled().
  • Operacje startują przy tworzeniu Promise, nie w Promise.all(). Promise.all(array.map(load)) uruchamia wszystkie żądania naraz – przy setkach pozycji podziel je na partie.

Obsługa w przeglądarkach

Baseline – szeroko dostępne: działa we wszystkich popularnych przeglądarkach, i to od dawna (najpóźniej od 2015 roku). Od wersji: Chrome 32, Firefox 29, Safari 8; Node.js 0.12.0. Stan: październik 2026 (MDN browser-compat-data).

Zobacz też:
Promise.allSettled()
Promise.any()
Promise.race()
await