让JavaScript中setTimeout支持链式操作的方法
修改很简单,通过参数判断,然后返回下promise对象
(function(){
vartimeout=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)
})