防抖节流

92 阅读1分钟

实现一个简单的节流

节流其实就是技能冷却中 拿游戏举例,释放一个技能后有对应的冷却时间,在这个时间段里面是无法再次释放技能,这个其实就是节流。
举个栗子

const d=()=>{
    console.log('闪现');
}
const throttle=(f,time)=>{
    let flag =false
    let timer =null
    return (...args)=>{
        if(flag){return}
        f(...args)
        flag=true
        timer=setTimeout(()=>{
            flag=false
        },time)
    }
}
const d2=throttle(d,300*1000)

这样就实现了一个简单的防抖效果

实现一个简单的节流

节流就是回城引导的过程中被一些事情打断了施法

const b=()=>{
    console.log('回程中');
}
const debounce=(f,time)=>{
    let timer =null
    return (...args)=>{
        if(timer){
            clearTimeout(timer)
        }
        timer=setTimeout(() => {
           f(...args)
           timer=null 
        }, time);
    }
}
const gohome=debounce(f,8000)