@6thquake/react-material
Version:
React components that implement Google's Material Design.
41 lines (32 loc) • 1.03 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.throttle = exports.debounce = void 0;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _arguments = arguments;
var debounce = function debounce(handler, wait) {
var timeout = null;
return function () {
if (timeout !== null) clearTimeout(timeout);
timeout = setTimeout(handler, wait);
};
};
exports.debounce = debounce;
var throttle = function throttle(handler, delay) {
var timer = null;
var startTime = Date.now();
return function () {
var curTime = Date.now();
var remaining = delay - (curTime - startTime);
clearTimeout(timer);
if (remaining <= 0) {
handler.apply(void 0, (0, _toConsumableArray2.default)(_arguments));
startTime = Date.now();
} else {
timer = setTimeout(handler, remaining);
}
};
};
exports.throttle = throttle;
;