I have a scenario where I need to schedule multiple timeouts in vanilla JS, it will be something like this below:
const scheduler = {
  done: function() {},
  schedule: function() {}
};
scheduler.schedule(function(done) {
  setTimeout(() => {
    console.log(1);
    done()
  }, 2000);
});
scheduler.schedule(function(done) {
  setTimeout(() => {
    console.log(2);
    done()
  }, 1000);
});
scheduler.schedule(function(done) {
  setTimeout(() => {
    console.log(3);
    done()
  }, 3000);
});
it should execute it in such a way that it must print below:
1
2
3
 
     
     
    