// @ts-nocheck /** * 防抖函数,通过延迟一定时间来限制函数的执行频率。 * @param fn 要防抖的函数。 * @param wait 触发防抖的等待时间,单位为毫秒。 * @returns 防抖函数。 */ export function debounce(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"