Make setTimeout in JavaScript support chained operations

  • 2020-06-19 09:43:28
  • OfStack

The modification is simple, determined by the parameters, and then returns the promise object


(function() {
  var timeout = setTimeout;
  window.setTimeout = function(fn, time) {
    if (!time) {
      time = fn;
      return $.Deferred(function(dfd) {
        timeout(function() {
          dfd.resolvel(dfd);
        }, time);
      }).promise();
    }
    timeout.apply(window, arguments);
  }
})();

call


setTimeout(1000).done(function(dnt) {
  console.log(dnt)
})


Related articles: