节流在于,短时间间隔内无法连续调用,只有上一次触发结束后才能调用
export const Throttle = (fn,t)=>{
let timer = null;
let delayTime = t || 200;
let initTime;
return function(){
let args = arguments;
let now = Date.now();
//初始化触发时间存在,且当前时间与初始化触发时间之差小于延迟时间,那么清除计时器,重新计时
if(initTime && now - initTime < delayTime){
clearTimeout(timer);
timer = setTimeout(()=>{
initTime = now;
fn.apply(this,args);
},delayTime)
}else{
initTime = now;
fn.apply(this,args);
}
}
}