UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

29 lines (28 loc) 1.27 kB
import type { IRequestInterceptor, IResponseInterceptor, IDecorator, IRawRequest } from './types'; export interface INetworkEngineOptions { requestInterceptors: IRequestInterceptor[]; responseInterceptors: IResponseInterceptor[]; decorator?: IDecorator; } /** * 网络调度引擎 * * 职责:把"请求拦截器 → doRequest → 响应拦截器 → decorator"串起来, * 对外暴露一个符合 `NetworkManager.setRequestImpl` 签名的函数。 * * 调度链: * 1. 顺序跑 requestInterceptors(任一返回 abort=true 即中止) * 2. 调 doRequest(wx.request / fetch) * 3. 顺序跑 responseInterceptors(任一返回 abort=true 即走失败) * 4. 成功:resolve param.data(通常由 GetDataInterceptor 填好) * 失败:reject param.data(同上) * 5. decorator 包裹整个 Promise,做 r=100000 重试等横切逻辑 */ export declare class NetworkEngine { options: INetworkEngineOptions; constructor(options: INetworkEngineOptions); /** 对外暴露的请求函数:一次完整的 request 调用 */ request: (cfg: IRawRequest) => Promise<any>; /** 不含 decorator 的单次请求主链(供 decorator 重试时调用) */ runCore: (cfg: IRawRequest) => Promise<any>; }