ts-prime
Version:
A utility library for JavaScript and Typescript.
32 lines (31 loc) • 877 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var purry_1 = require("./purry");
function debounce() {
return purry_1.purry(__debounce, arguments);
}
exports.debounce = debounce;
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;
});
}