UNPKG

@onesy/utils

Version:
26 lines (23 loc) 676 B
// every 100ms at least const throttle = function (method) { let interval = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100; let lastTime = 0; let timeoutID; return function () { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } const now = Date.now(); if (now - lastTime >= interval) { lastTime = now; method(...args); } else { clearTimeout(timeoutID); timeoutID = setTimeout(() => { lastTime = Date.now(); method(...args); }, interval - (now - lastTime)); } }; }; export default throttle;