js-utils-chs
Version:
自定义工具函数库
28 lines • 827 B
JavaScript
let timer, flag;
/**
* 节流原理:在一定时间内,只能触发一次
* @param {*} func
* @param {*} wait
* @param {*} immediate
*/
export function throttle(func, wait = 500, immediate = true) {
if (immediate) {
if (!flag) {
flag = true;
// 如果适合立即执行,则在wait毫秒内开始执行
typeof func === 'function' && func()
timer = setTimeout(() => {
flag = false;
}, wait);
}
} else {
if (!flag) {
flag = true
// 如果是非立即执行,则在wait毫秒内的结束处执行
timer = setTimeout(() => {
flag = false;
typeof func === 'function' && func()
}, wait)
}
}
}