Promise.all() – What Is the JavaScript Promise all() Method?
Promise.all() is a static method of the Promise constructor function. It returns a new promise object in a fulfilled or rejected state based on the iterable value you’ve provided as its argument.
Suppose JavaScript fulfills all the iterable argument’s values. In that case, Promise.all() will return a fulfilled promise.
However, suppose JavaScript rejects any of the iterable’s values. In that case, Promise.all() will return a rejected promise based on the reason of the first rejected value.
Syntax of the Promise.all() Static Method
Section titled “Syntax of the Promise.all() Static Method”Promise.all(iterable);- The
all()method’s iterable argument’s items can be promises, thenables, or any of JavaScript’s data types. Promise.all()will automatically pass each of its iterable argument’s items throughPromise.resolve(). Therefore,all()will eventually resolve its iterable argument’s values to a fully-fledged promise object.
Example of Promise.all() Returning a Fulfilled Promise
Section titled “Example of Promise.all() Returning a Fulfilled Promise”Promise.all(["Orange", Promise.resolve(24), 715]);
// The invocation above will return:Promise { <state>: "fulfilled", <value>: Array(3) ["Orange", 24, 715] }The snippet above returned a new promise object that is fulfilled with an array of all()’s array argument because JavaScript fulfilled all the array’s values.
When Does Promise.all() Return a Fulfilled Promise?
Section titled “When Does Promise.all() Return a Fulfilled Promise?”Promise.all() returns a fulfilled promise when the static method resolves all the items in its iterable argument.
Here’s an example:
const item1 = Promise.resolve(24);const item2 = 715;const item3 = new Promise((resolve, reject) => { setTimeout(() => { resolve("Orange"); }, 15000);});
Promise.all([item1, item2, item3]).then((value) => { console.log(value);});
// The invocation above will first return:// Promise { <state>: "pending" }
// Then, after 15000 milliseconds (15 seconds), the invocation will return:Array(3)[(24, 715, "Orange")];The snippet above returned a fulfilled promise after JavaScript resolved all the array argument’s items.
Example of Promise.all() Returning a Rejected Promise
Section titled “Example of Promise.all() Returning a Rejected Promise”Promise.all(["Orange", Promise.reject("Pinkmelon"), Promise.reject(24), 715]);
// The invocation above will return:Promise { <state>: "rejected", <reason>: "Pinkmelon" }The snippet above returned a new promise object with the first rejected array item as its rejection reason.
When Does Promise.all() Return a Rejected Promise?
Section titled “When Does Promise.all() Return a Rejected Promise?”Promise.all() returns a rejected promise when the static method finds the first invalid item in its iterable argument.
Here’s an example:
const item1 = Promise.reject(24);const item2 = 715;const item3 = Promise.reject("Pinkmelon");const item4 = new Promise((resolve, reject) => { setTimeout(() => { resolve("Orange"); }, 15000);});
Promise.all([item1, item2, item3, item4]).then((value) => { console.log(value);});
// The invocation above will return:Promise { <state>: "rejected", <reason>: 24 }The snippet above returned a rejected promise immediately after it found an invalid item in the array argument.