Skip to content

Instantly share code, notes, and snippets.

@meetzaveri
Created August 29, 2019 02:58
Show Gist options
  • Save meetzaveri/9b7330f966ade537b8012c763011bb44 to your computer and use it in GitHub Desktop.
Save meetzaveri/9b7330f966ade537b8012c763011bb44 to your computer and use it in GitHub Desktop.
Performs async tasks in series
const task1S = (cb) => {
  setTimeout(()=>{
    console.log('Task 1 started');
    cb();
  },0)
}

const task1F = (cb) => {
  setTimeout(()=>{
    console.log('Task 1 Finished');
    cb();
  },3000)
}

const task2S = (cb) => {
  setTimeout(()=>{
    console.log('Task 2 started');
    cb();
  },0)
}

const task2F = (cb) => {
  setTimeout(()=>{
    console.log('Task 2 finished');
    cb();
  },3000)
}

let counter =0;
let fnArr = [task1S,task1F,task2S,task2F];

function runF(index){
  
  if(index < fnArr.length){
    fnArr[counter](()=>{
      counter++;
      runF(counter);
    });
  }
}
runF(0);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment