使用场景:
使用antd design的slider滑动输入条时,需要在滑动停止时发起请求,挪动过程中不请求,这里使用防抖进行处理
let itemout=null
changeSlider(e){
if (timeout) clearTimeout(timeout)
timeout = setTimeout(() => {
//在这里调用请求的方法
}, 300)
}
也可以使用单独写出来的防抖方法
export function debounce(fn: any, time = 500) {
// 创建一个标记用来存放定时器的返回值
let timeout: any = null;
return function () {
// 每次调用方法时,把前一个定时器清除
clearTimeout(timeout);
// 然后创建一个新的 setTimeout,
// 这样就能保证点击按钮后的 interval 间隔内
// 如果用户还点击了的话,就不会执行 fn 函数
timeout = setTimeout(() => {
fn.call(this, arguments);
}, time);
};
}