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