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()