123456789101112131415161718192021222324252627282930313233343536 |
- // @ts-nocheck
- /**
- * 防抖函数,通过延迟一定时间来限制函数的执行频率。
- * @param fn 要防抖的函数。
- * @param wait 触发防抖的等待时间,单位为毫秒。
- * @returns 防抖函数。
- */
- export function debounce<A extends any>(fn : (args: A)=> void, wait = 300): (args: A)=> void {
- let timer = -1
-
- return (args: A) => {
- if (timer >-1) {clearTimeout(timer)};
-
- timer = setTimeout(()=>{
- fn(args)
- }, wait)
- }
- };
- // 示例
- // 定义一个函数
- // function saveData(data: string) {
- // // 模拟保存数据的操作
- // console.log(`Saving data: ${data}`);
- // }
- // // 创建一个防抖函数,延迟 500 毫秒后调用 saveData 函数
- // const debouncedSaveData = debounce(saveData, 500);
- // // 连续调用防抖函数
- // debouncedSaveData('Data 1'); // 不会立即调用 saveData 函数
- // debouncedSaveData('Data 2'); // 不会立即调用 saveData 函数
- // 在 500 毫秒后,只会调用一次 saveData 函数,输出结果为 "Saving data: Data 2"
|