Очередь 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);