Promise.all Polyfill
by Varun Sukheja
HTML
<script src="https://cdn.jsdelivr.net/gh/eu81273/jsfiddle-console/console.js"></script>
JavaScript
Promise.all = function(promises) {
let results = [];
return new Promise((resolve, reject) => {
// check if array has any promise
if (!promises.length) {
resolve(results);
return;
}
promises.forEach((p, index) => {
p.then((result) => {
results.push(result);
if (index === promises.length - 1) {
resolve(results);
}
}).catch((err) => reject(err));
});
});
};
let promises = [
Promise.resolve(1),
Promise.resolve('this is 2nd'),
new Promise((resolve, reject) => setTimeout(resolve, 800, '3rd')),
];
Promise.all(promises).then((result) => {
console.log('Promise results', result);
});