Implement a function allWithProgress() that tracks the progress as each promise resolves. use Promise.all() underneeth.
const promises = [
new Promise((resolve) => setTimeout(() => resolve("task 1"), 1000)),
new Promise((resolve) => setTimeout(() => resolve("task 2"), 2000)),
new Promise((resolve) => setTimeout(() => resolve("task 3"), 3000))
];
function promiseAllWithProgress(promises) {
let complete = 0;
return Promise.all(promises.map(promise => {
return promise.then((result) => {
complete++;
const percentage = (complete / promises.length) * 100;
console.log(percentage);
return result;
})
}));
}
promiseAllWithProgress(promises).then(result => {
console.log(result);
});
// output
//33.33333333333333
//66.66666666666666
//100
//[ 'task 1', 'task 2', 'task 3' ]