Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Throttle
- */
- const throttle = (func, delay) => {
- let isThrottle = false;
- let selfArgs;
- let wrapper = (...args) => {
- if (isThrottle) {
- selfArgs = args;
- return;
- }
- func.apply(this, args);
- isThrottle = true;
- setTimeout(() => {
- isThrottle = false;
- if (selfArgs) {
- wrapper.apply(this, selfArgs);
- selfArgs = null;
- }
- }, delay)
- }
- return wrapper;
- }
- var f = function(a) {
- console.log(a)
- };
- // затормозить функцию до одного раза в 1000 мс
- var f1000 = throttle(f, 1000);
- f1000(1); // выведет 1
- f1000(2); // (тормозим, не прошло 1000 мс)
- f1000(3); // (тормозим, не прошло 1000 мс)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement