UNPKG

@mt-kit/utils

Version:
18 lines (17 loc) 886 B
/** * 创建带请求去重功能的函数包装器 * * 在指定时间窗口内,多次调用同一个函数时: * - 只有第一次会真正向后端请求 * - 其它调用会等待第一次请求完成,并拿到相同结果 * - 请求完成后会清除缓存,确保下次调用时重新请求 * * 这里不关心具体请求逻辑,由外部传入真正的请求函数(如 dataList)。 * 基于函数引用作为 key 进行全局缓存管理,所以可以在组件内部使用。 * * @param fn - 需要包装的异步函数 * @param cacheWindow - 时间窗口(毫秒),默认 500ms,范围 [0, 60000] * @returns 带去重功能的包装函数 * @throws 如果 fn 不是函数,会抛出错误 */ export default function createDedupedRequest<T extends unknown[], R>(fn: (...args: T) => Promise<R>, cacheWindow?: number): (...args: T) => Promise<R>;