/** * 缓存请求列表,防止重复请求 */ const pending = new Map() /** * 添加请求 * @param key 请求key * @param task 请求线程 */ export function addPending(key: string, task: WechatMiniprogram.RequestTask): void { //如果列表中不存在当前请求,则添加进去 if (!pending.has(key)) { pending.set(key, task); } } /** * 移除请求 * @param key 请求key */ export const removePending = (key: string) => { //如果在列表中存在当前请求,需要中断当前请求,并且移除 if (pending.has(key)) { const task = pending.get(key) task?.abort() // 中断请求 pending.delete(key) } }