让JavaScript中setTimeout支持链式操作的方法


本文向大家介绍让JavaScript中setTimeout支持链式操作的方法,包括了让JavaScript中setTimeout支持链式操作的方法的使用技巧和注意事项,需要的朋友参考一下

修改很简单,通过参数判断,然后返回下promise对象


(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);

  }

})();

调用


setTimeout(1000).done(function(dnt) {

  console.log(dnt)

})