原因
网上很多节流函数都是可以实现一段时间内只能执行一次,但第一次点击时需要等待后才会执行
解决方案
使其在触发函数时能够判断是否需要立即执行
const throttleStart = (func, wait) => {
// 定义全局变量
let timer;
let firstTime = true;
// 返回一个函数
return function () {
// 如果是第一次调用
if (firstTime) {
// 调用原函数,并将参数传递进去
func.apply(this, arguments);
// 将firstTime设为false,表示已经调用过一次
firstTime = false;
} else {
// 如果timer为空
if (!timer) {
// 调用原函数,并将参数传递进去
func.apply(this, arguments);
// 设置一个定时器,等待指定时间后执行回调函数
timer = setTimeout(() => {
timer = null;
}, wait);
}
}
};
}