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

  作者:bea

修改很简单,通过参数判断,然后返回下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对象


代码如下:


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





有用  |  无用

猜你喜欢