index.ts 757 B

1234567891011121314151617181920212223242526272829
  1. /**
  2. * 缓存请求列表,防止重复请求
  3. */
  4. const pending = new Map<string, WechatMiniprogram.RequestTask>()
  5. /**
  6. * 添加请求
  7. * @param key 请求key
  8. * @param task 请求线程
  9. */
  10. export function addPending(key: string, task: WechatMiniprogram.RequestTask): void {
  11. //如果列表中不存在当前请求,则添加进去
  12. if (!pending.has(key)) {
  13. pending.set(key, task);
  14. }
  15. }
  16. /**
  17. * 移除请求
  18. * @param key 请求key
  19. */
  20. export const removePending = (key: string) => {
  21. //如果在列表中存在当前请求,需要中断当前请求,并且移除
  22. if (pending.has(key)) {
  23. const task = pending.get(key)
  24. task?.abort() // 中断请求
  25. pending.delete(key)
  26. }
  27. }