Promise.all( iterable )
Parameters: This method accepts a single parameter iterable which takes an array of promises or a normal array which contains some objects.
Return values: It follows some rules to return a single promise:
- If passed argument is empty, it returns a Promise that already resolved.
- If passed iterable contains no promises, it returns a Promise that resolved asynchronously.
- For all other cases, it returns a pending Promise.
Fulfillment and Rejection of Promise.all() Method:
Fulfillment: The returned promise is fulfilled,
- If the passed iterable is empty, then this method returns an promise synchronously which is already resolved.
- If all of the passed promises are fulfill, the returned Promises are fulfilled asynchronously.
- Here the successful execution of this particular method totally depends on all promises to get successfully executed.
Rejection: If any of the passed promises are rejected, then this method rejects the value of that promise, whether or not the other promises have resolved. In other words, if any promise fails to get executed, then Promise.all() method will return an error and it will not take into the account whether other promises are successfully fulfilled or not.
Example 1: Promise.all() method waits for fulfillment
50, 200, geek
Example 2: Here Promise.all() method resolves after 2000ms and the output is shows as an array.
Completed in 1000 Completed in 1000, Completed in 2000
Here, Promise.all() method is the order of the maintained promises. The first promise in the array will get resolved to the first element of the output array, the second promise will be a second element in the output array and so on.
Example 3: Here the Promise.all() method waits till all the promises resolve.
[object Promise], [object Promise], [object Promise] . . . (gap between previous and last promises) . . Completed in 1000, Completed in 2000, Completed in 3000
Example 4: As shown in this example, If one of the promises fails, then all the rest of the promises fail and result will be displayed in the console in the form of an Error. Then Promise.all() method gets rejected.
Error Rejected in 2000
Example-5: In this example we will use some timer function (particularly setTimeout function) having different timers in it and those will be written inside different promises and further those promises will be passed inside Promise.all() method in order to obtain the result.
[ 'Resolved First after 1 second', 'Resolved First after 2 seconds', 'Resolved First after 3 seconds' ]
- Google Chrome 32 and above
- Edge 12 and above
- Firefox 29 and above
- Opera 19 and above
- Safari 8 and above
- Internet Explorer not supported