This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/components/debounce.js
2013-02-21 16:01:40 +11:00

33 lines
635 B
JavaScript

window.Discourse.debounce = function(func, wait, trickle) {
var timeout;
timeout = null;
return function() {
var args, context, currentWait, later;
context = this;
args = arguments;
later = function() {
timeout = null;
return func.apply(context, args);
};
if (timeout && trickle) {
/* already queued, let it through */
return;
}
if (typeof wait === "function") {
currentWait = wait();
} else {
currentWait = wait;
}
if (timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(later, currentWait);
return timeout;
};
};