Очередь JS

by DelphinPRO

Babel + JSX

function makeJob(cb){
  return function(){
    return new Promise((resolve, reject) => cb(resolve));
  }
}

async function runAllJobs(jobs){
  for (let i = 0; i < jobs.length; i++) {
    await jobs[i]();
  }
}

let jobs = [];
jobs.push(makeJob(resolve => setTimeout(()=>{console.log('Job 1');resolve()}, 1000)));
jobs.push(makeJob(resolve => setTimeout(()=>{console.log('Job 2');resolve()}, 1000)));
jobs.push(makeJob(resolve => setTimeout(()=>{console.log('Job 3');resolve()}, 1000)));
jobs.push(makeJob(resolve => setTimeout(()=>{console.log('Job 4');resolve()}, 1000)));
jobs.push(makeJob(resolve => setTimeout(()=>{console.log('Job 5');resolve()}, 1000)));

runAllJobs(jobs);