axios请求封装类,继承自RequestTemplate

使用模板方法模式处理axios请求, 具体类可实现protected的方法替换掉原有方法 自定义配置可继承CustomConfig实现

Type Parameters

Hierarchy

Properties

axios: AxiosStatic
axiosIns: AxiosInstance

axios实例

cache: Cache<Promise<unknown> | AxiosPromise<unknown>>

缓存

globalConfigs: Configs<CC>

全局配置

cancelerManager: Canceler<CustomConfig>

缓存管理器

Methods

  • json类返回值类型

    模板方法,请求入口,重试不会执行该方法

    Type Parameters

    • T = never

    • RC extends boolean = false

    Parameters

    • requestConfig: Omit<AxiosRequestConfig<any>, "url" | "cancelToken" | "responseType"> & {
          url: string;
          responseType?: "json";
      }
    • Optional customConfig: DynamicCustomConfig<CC, RC>

    Returns Promise<RC extends true ? AxiosResponse<ResType<T>, any> : ResType<T>>

  • 非json返回值类型

    模板方法,请求入口,重试不会执行该方法

    Type Parameters

    • T = never

    • RC extends boolean = false

    Parameters

    • requestConfig: Omit<AxiosRequestConfig<any>, "url" | "cancelToken"> & {
          url: string;
      }
    • Optional customConfig: DynamicCustomConfig<CC, RC>

    Returns Promise<RC extends true ? AxiosResponse<T, any> : T>

  • 本质上跟methodFactory是一样的

    Parameters

    Returns (<T, RC>(requestConfig: Omit<AxiosRequestConfig<any>, "url" | "cancelToken"> & {
        url: string;
    }, customConfig?: DynamicCustomConfig<CC, RC>) => Promise<T>)

      • <T, RC>(requestConfig: Omit<AxiosRequestConfig<any>, "url" | "cancelToken"> & {
            url: string;
        }, customConfig?: DynamicCustomConfig<CC, RC>): Promise<T>
      • Type Parameters

        • T = never

        • RC extends boolean = false

        Parameters

        • requestConfig: Omit<AxiosRequestConfig<any>, "url" | "cancelToken"> & {
              url: string;
          }
        • Optional customConfig: DynamicCustomConfig<CC, RC>

        Returns Promise<T>

  • 根据tag移除缓存

    为什么要做这个功能:因为在移动端这类无限上拉下一页分页场景,如果下拉刷新了缓存, 那么必须清除这一url下所有分页的缓存,然而分页场景下每一页都会生成一个key,不好删除缓存

    Parameters

    Returns void

Constructors

Accessors

  • get interceptors(): {
        request: AxiosInterceptorManager<AxiosRequestConfig<any>>;
        response: AxiosInterceptorManager<AxiosResponse<any, any>>;
    }
  • 获取拦截器

    Returns {
        request: AxiosInterceptorManager<AxiosRequestConfig<any>>;
        response: AxiosInterceptorManager<AxiosResponse<any, any>>;
    }

    • request: AxiosInterceptorManager<AxiosRequestConfig<any>>
    • response: AxiosInterceptorManager<AxiosResponse<any, any>>

Generated using TypeDoc