JSFiddle - React, Tailwind, and code Playground
by sivashanmugam kannan
JavaScript
const promise1 = Promise.resolve(43);
const promise2 = 2;
const promise3 = new Promise((resolve, reject) => {
setTimeout(reject, 100, 'aastha');
})
const promiseAll = function (promises) {
let totPromises = promises.length;
let promiseResults = []
let resolvedPromises = 0;
return new Promise((resolve, reject) => {
promises.forEach(promise => {
if (promise instanceof Promise) {
promise.then(res => {
promiseResults.push(res);
resolvedPromises++;
if (resolvedPromises == totPromises) {
resolve(promiseResults)
}
}).catch((err) => {
reject(err);
})
} else {
promiseResults.push(promise);
resolvedPromises++;
if (resolvedPromises == totPromises) {
resolve(promiseResults)
}
}
})
})
}
promiseAll([promise1, promise2, promise3]).then(result => {
console.log(result)
}).catch(err => {
console.log('ERROR')
console.log(err)
})