frontend-challenges
frontend-challenges copied to clipboard
35 - Promise.all - javascript
index.js
export function promiseAll(promises) {
return new Promise((resolve, reject) => {
let results = [];
let completedPromises = 0;
if (promises.length === 0) {
resolve([]);
return;
}
promises.forEach((promise, index) => {
Promise.resolve(promise)
.then((result) => {
results[index] = result;
completedPromises++;
if (completedPromises === promises.length) {
resolve(results);
}
})
.catch((error) => {
reject(error);
});
});
});
}