/// /** * 微信小程序操作队列封装管理 * @example var rq = new WxQueue(wx.requst); * @template TParam 微信操作参数类型 * @template TTask 微信操返回task类型 */ export declare class WxQueue { /** * 队列最大长度 */ readonly MAX: number; /** * 任务ID计数器 */ private taskid; /** * 待完成队列 */ private readonly todo; /** * 保持正在运行的任务 */ private readonly taskMap; /** * 小程序的原始操作API */ private readonly operator; /** * 创建Wx操作队列 * @param wxFunc Wx操作函数 * @param maxLength 最大队列长度,默认10 */ constructor(wxFunc: (params: TParam) => TTask, maxLength?: number); /** * 向队列中添加操作 * @param param 微信操作 */ push(param: QueueOption): TTask; /** * check and do next task */ private _next; /** * process a task * @param id task ID * @param options task param */ private _process; /** * stop and remove a task * @param taskid - the id of task to abort */ private _abort; /** * progress update callback * https://developers.weixin.qq.com/miniprogram/dev/api/network/download/DownloadTask.onProgressUpdate.html * @param taskid - task id * @param callback 回调操作 */ private _onProgress; private _onHeaders; } export declare type QueueOption = T & ExtraOptions; /** * 微信操作参数声明 */ interface ExtraOptions { /** * progress 回调 */ onProgressUpdate?: wx.UploadTaskOnProgressUpdateCallback | wx.DownloadTaskOnProgressUpdateCallback; /** * 是否插队 */ jump?: boolean; /** * 自定义超时时间 */ timeout?: number; /** * 记录时间戳 */ timestamp?: boolean | object; /** * 开发者服务器返回的 HTTP Response Header 回调 */ onHeadersReceived?(result: { header: object; }): void; } interface BaseOption { /** 开发者服务器接口地址 */ url: string; /** 接口调用结束的回调函数(调用成功、失败都会执行) */ complete?: Function; /** 接口调用失败的回调函数 */ fail?: Function; /** 接口调用成功的回调函数 */ success?: Function; } interface BaseTask { abort(): void; /** HTTP Response Header 事件的回调函数 */ onHeadersReceived(callback: ExtraOptions['onHeadersReceived']): void; /** 下载进度变化事件的回调函数 */ onProgressUpdate?(callback: ExtraOptions['onProgressUpdate']): void; } declare namespace wx { type UploadTaskOnProgressUpdateCallback = (res: { /** * 上传进度百分比 */ progress: number; /** * 已经上传的数据长度,单位 Bytes */ totalBytesSent: number; /** * 预期需要上传的数据总长度,单位 Bytes */ totalBytesExpectedToSend: number; }) => void; type DownloadTaskOnProgressUpdateCallback = (res: { /** * 下载进度百分比 */ progress: number; /** * 已经下载的数据长度,单位 Bytes */ totalBytesWritten: number; /** * 预期需要下载的数据总长度,单位 Bytes */ totalBytesExpectedToWrite: number; }) => void; } export interface TimeRecorder { send?: number; response?: number; } export {}; //# sourceMappingURL=index.d.ts.map