Очередь JS

by DelphinPRO

Babel + JSX

function makeJob(time, cb){
  return function(){
    return new Promise(function(resolve, reject){
      setTimeout(function(){
        cb();
        resolve();
      }, time);
    });
  }
}

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

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

runAllJobs(jobs);