21 lines
423 B
JavaScript
21 lines
423 B
JavaScript
|
"use strict";
|
||
|
let flag;
|
||
|
function throttle(func, wait = 500, immediate = true) {
|
||
|
if (immediate) {
|
||
|
if (!flag) {
|
||
|
flag = true;
|
||
|
typeof func === "function" && func();
|
||
|
setTimeout(() => {
|
||
|
flag = false;
|
||
|
}, wait);
|
||
|
}
|
||
|
} else if (!flag) {
|
||
|
flag = true;
|
||
|
setTimeout(() => {
|
||
|
flag = false;
|
||
|
typeof func === "function" && func();
|
||
|
}, wait);
|
||
|
}
|
||
|
}
|
||
|
exports.throttle = throttle;
|