UNPKG

@mt-kit/utils

Version:
24 lines (23 loc) 892 B
/** * 消息队列 * 支持两种模式: * 1. 串行模式:按顺序执行,一个完成后再执行下一个 * 2. 持续防抖模式:一段时间内有新请求就取消前面的,只保留最后一个,且只有在最后一次请求结束后的一段时间内没有新请求,才真正执行 */ interface IQueueOptions { key?: string; /** * 防抖时间 (毫秒) * 如果为 true,默认为 300ms * 如果为 false 或 undefined,则为普通串行队列 * 如果有值,则开启防抖模式:在该时间内有新请求进入,会取消上一个请求,重新计时。 */ duration?: boolean | number; } /** * 队列请求方法 * @param fn 数据请求函数 * @param options 配置项 (包含 key, duration) */ export default function queue<T = unknown>(fn: () => Promise<T>, options?: IQueueOptions): Promise<T>; export {};