UNPKG

@mt-kit/utils

Version:
20 lines (19 loc) 953 B
/** * 防抖 * * 只有在某个时间内,没有再次触发某个函数时,才真正的调用这个函数 * * 防抖的应用场景: * ① 搜索框(确保不会每次输入都发送请求); * ② 频繁的点击按钮,触发某个事件; * ③ 监听浏览器滚动事件,完成某些特定操作; * ④ 用户缩放浏览器的 resize 事件。 * * @param {Function} func 执行的方法 * @param {number} wait 毫秒 * @param {boolean} immediate 立即执行(让其在第一次输入的时候,就给用户一个联想) * @returns 返回一个函数,该函数返回一个 Promise,解析为执行的方法的返回值。另外,该函数还具有一个 cancel 方法,用于取消防抖 */ export default function debounce<T extends (...args: unknown[]) => unknown>(func: Function, wait?: number, immediate?: boolean): ((...args: Parameters<T>) => Promise<ReturnType<T>>) & { cancel: () => void; };