写一个ts防抖函数

写一个ts防抖函数
JXDN
2025年03月03日
|
浏览 112
前端
复制代码
// 创建一个防抖函数
function debounce(func: (...args: any[]) => void, wait: number) {
   let timeout: NodeJS.Timeout | null = null;
   return function(...args: any[]) {
       const later = () => {
           timeout = null;
           func.apply(this, args);
       };
       clearTimeout(timeout!);
       timeout = setTimeout(later, wait);
   };
}

关键技术说明:

  1. 使用闭包保存timeout变量,以便在每次调用时清除之前的定时器。
  2. setTimeout用于延迟执行函数,如果在这段时间内再次调用,则重新设置计时器。
  3. 通过clearTimeout确保在规定时间后才真正执行函数。
我要提问
复制内容
分享给好友
AI编程问答网 免责声明:
以上内容除特别注明外均来源于网友提问,AI编程问答网回答,权益归原著者所有;