import { OnionMiddleware, OnionOptions, RequestInterceptor, RequestMethod, RequestOptionsInit, ResponseInterceptor } from 'umi-request'; import type { IObject, IRequestAdapter, IRequestOptions, IResponse } from '../../interface'; interface Interceptors { request: RequestInterceptor; response: ResponseInterceptor; } export declare class CreateRequest { readonly http: RequestMethod; private readonly cancelObj; private readonly interceptors; private RH_SYB; private cancelId; private _requestAdapter; constructor(adapter?: IRequestAdapter); setRequestAdapter(adapter?: IRequestAdapter | ((oldAdapter?: IRequestAdapter) => IRequestAdapter)): void; getRequestAdapter(): IRequestAdapter | undefined; getHeaders(reqHeader?: IObject): Promise<{}>; private getHttpUrl; /** * 设置取消token * @param options */ private setCancelToken; /** * 初始化一个新的请求实例 */ init(adapter?: IRequestAdapter): CreateRequest; getRequest(): RequestMethod; /** * 取消当前进行中的所有请求 * @param msg 取消消息 * @param cancelId 取消id */ abort({ msg, cancelId }: { msg?: string; cancelId?: string; }): void; /** * 添加拦截器 * @param eventType 拦截类型: request 请求前(进入洋葱模型前), response请求后(洋葱模型最内层) * @param interceptor 拦截事件 */ on(eventType: T, interceptor: Interceptors[T]): this; /** * 取消监听器 * @param eventType 拦截类型: request 请求前(进入洋葱模型前), response请求后(洋葱模型最内层) * @param interceptor 拦截事件 */ un(eventType: T, interceptor?: Interceptors[T]): this; /** * 注入中间件,扩展请求前后功能,修改url等,参考 52 行代码 * @param handler 中间件函数,支持async/await, 参数(context/请求前后信息、next/发起请求) * @param options 这个配置决定这个middleware加载到哪一层 */ use(handler: OnionMiddleware, options?: OnionOptions): this; /** * get请求 * @param options IRequestOptions */ get(options: IRequestOptions): Promise; getWithArray(options: IRequestOptions): Promise<[boolean, T, any]>; /** * post请求 * @param options IRequestOptions */ post(options: IRequestOptions): Promise; postWithArray(options: IRequestOptions): Promise<[boolean, T, any]>; /** * post请求,请求参数放在body里面 * @param options IRequestOptions */ body(options: IRequestOptions): Promise; bodyWithArray(options: IRequestOptions): Promise<[boolean, T, any]>; /** * delete请求 * @param options IRequestOptions */ delete(options: IRequestOptions): Promise; deleteWithArray(options: IRequestOptions): Promise<[boolean, T, any]>; /** * put请求 * @param options IRequestOptions */ put(options: IRequestOptions): Promise; putWithArray(options: IRequestOptions): Promise<[boolean, T, any]>; /** * 包裹取消函数 * @param options RequestOptionsInit */ withCancel(options: RequestOptionsInit & { absUrl?: boolean; dataToJson?: boolean; }): [Promise, Function]; } export {};