import { GeneralCallbackResult } from 'miniprogram-network-utils'; /** * 监听事件列表 */ export class Listeners { /** * 发送之前事件监听列表 * 回调函数参数为`完整配置`(只读,不应修改) */ public onSend: OnSendListener[] = []; /** * 收到数据响应后事件监听列表 * 回调函数参数为`返回结果`和`完整配置`(只读,不应修改) */ public onResponse: OnResponseListener[] = []; /** * 请求完成时事件监听列表 * 回调函数参数为`操作结果`和`完整配置`(只读,不应修改) */ public onComplete: OnCompleteListener[] = []; /** * 处理失败事件监听列表 * 回调函数参数为`失败原因`和`完整配置`(只读,不应修改) */ public onRejected: OnRejectListener[] = []; /** * 请求取消事件监听列表 * 回调函数参数为`取消原因`和`完整配置`(只读,不应修改) */ public onAbort: OnAbortListener[] = []; } /** * 发送前监听 */ type OnSendListener = (options: Readonly) => any; /** * 发送时监听 */ type OnResponseListener = (res: Readonly, options: Readonly) => any; /** * 操作完成时 */ type OnCompleteListener = ( res: Readonly & CommonCompleteResult>, options: Readonly ) => any; /** * 失败 */ type OnRejectListener = (res: Readonly<{ errMsg: string } | any>, options: Readonly) => any; /** * 操作取消时 */ type OnAbortListener = (reason: Readonly, options: Readonly) => any; interface CommonCompleteResult extends GeneralCallbackResult { /** * 时间戳记录, 通过发送并且timestamp设置为true */ time?: { /** * 发送时间戳 */ send: number; /** * 结束时间戳 */ response: number; }; }