防抖和节流

44 阅读1分钟

小小复习

const debounce = (fn,delay)=>{

    let timer:any= null
    // 有timer,清掉,重新计时

    return (...args)=>{
        if(timer){
            clearTimeout(timer)
            timer = setTimeout(()=>{
                fn(...args)
            },delay)
        }else{
            timer = setTimeout(()=>{
                fn(...args)
            },delay)
        }
    }

}

// 节流函数,有timer直接返回,没有timer,生成timer,在回调中再清空
const throttle = (fn,delay) =>{
    let timer:any = null

    return (...args)=>{
        if(timer){
            return
        }else{
            timer = setTimeout(()=>{
                fn(...args)
                timer = null
            },delay)
        }
       
    }
}