ts-prime
Version:
A utility library for JavaScript and Typescript.
29 lines (28 loc) • 769 B
JavaScript
import { purry } from "./purry";
export function debounce() {
return purry(__debounce, arguments);
}
function __debounce(func, debounceTimeMs) {
// tslint:disable: no-let
var result = null;
var debounceTimer = null;
return (function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (result == null) {
result = {
r: func.apply(void 0, args),
};
return result.r;
}
clearTimeout(debounceTimer);
debounceTimer = setTimeout(function () {
result = {
r: func.apply(void 0, args),
};
}, debounceTimeMs);
return result.r;
});
}