Concurrency promise.all
by fkhairzad
Babel + JSX
async function init() {
let concurrency = 0;
let promises = [];
let fakePromise = () => {
return new Promise(resolve => {
setTimeout(() => resolve(true), 2000)
})
}
for (let i = 0; i <= 50; i++) {
if (concurrency > 5) {
console.log(`Waiting the last ${promises.length} promises`)
await Promise.all(promises).then(r => { concurrency = 0; promises = []; });
}
promises.push(fakePromise());
concurrency++;
}
console.log('Resolving the rest')
await Promise.all(promises) //resolve the rest
console.log('Finished!')
}
init()