| import Enumerator from '../enumerator'; |
| |
| /** |
| `Promise.all` accepts an array of promises, and returns a new promise which |
| is fulfilled with an array of fulfillment values for the passed promises, or |
| rejected with the reason of the first passed promise to be rejected. It casts all |
| elements of the passed iterable to promises as it runs this algorithm. |
| |
| Example: |
| |
| ```javascript |
| var promise1 = resolve(1); |
| var promise2 = resolve(2); |
| var promise3 = resolve(3); |
| var promises = [ promise1, promise2, promise3 ]; |
| |
| Promise.all(promises).then(function(array){ |
| // The array here would be [ 1, 2, 3 ]; |
| }); |
| ``` |
| |
| If any of the `promises` given to `all` are rejected, the first promise |
| that is rejected will be given as an argument to the returned promises's |
| rejection handler. For example: |
| |
| Example: |
| |
| ```javascript |
| var promise1 = resolve(1); |
| var promise2 = reject(new Error("2")); |
| var promise3 = reject(new Error("3")); |
| var promises = [ promise1, promise2, promise3 ]; |
| |
| Promise.all(promises).then(function(array){ |
| // Code here never runs because there are rejected promises! |
| }, function(error) { |
| // error.message === "2" |
| }); |
| ``` |
| |
| @method all |
| @static |
| @param {Array} entries array of promises |
| @param {String} label optional string for labeling the promise. |
| Useful for tooling. |
| @return {Promise} promise that is fulfilled when all `promises` have been |
| fulfilled, or rejected if any of them become rejected. |
| @static |
| */ |
| export default function all(entries, label) { |
| return new Enumerator(this, entries, true /* abort on reject */, label).promise; |
| } |