UNPKG

olympus-r

Version:

一个力求简单易用的前端开发框架 #### 开发语言 TypeScript #### 核心架构 MVC #### 模块间通讯和解耦 采用事件机制,利用一个全局唯一的事件派发器进行模块间通讯,解耦模块间依赖 #### 表现层结构 使用桥接模式拆分接口与实现,达到一套核心驱动多套表现层的目的(目前支持DOM、Egret、PixiJS三种表现层),同时支持表现层的未来可扩展性 #### TypeScript装饰器注入 框架提供TypeScript装饰器注入功能,便捷获取托管对象。例如:

78 lines (77 loc) 3.52 kB
import IObservable from "../../core/observable/IObservable"; import RequestData from "./RequestData"; import ResponseData, { IResponseDataConstructor } from "./ResponseData"; /** * @author Raykid * @email initial_r@qq.com * @create date 2017-09-12 * @modify date 2017-09-12 * * 网络管理器 */ export interface ResponseHandler { (response: ResponseData | Error, request?: RequestData): void; } export default class NetManager { constructor(); private onMsgDispatched; private _responseDict; /** * 注册一个返回结构体 * * @param {IResponseDataConstructor} cls 返回结构体构造器 * @memberof NetManager */ registerResponse(cls: IResponseDataConstructor): void; private _responseListeners; /** * 添加一个通讯返回监听 * * @param {(IResponseDataConstructor|string)} clsOrType 要监听的返回结构构造器或者类型字符串 * @param {ResponseHandler} handler 回调函数 * @param {*} [thisArg] this指向 * @param {boolean} [once=false] 是否一次性监听 * @param {IObservable} [observable] 要发送到的内核 * @memberof NetManager */ listenResponse(clsOrType: IResponseDataConstructor | string, handler: ResponseHandler, thisArg?: any, once?: boolean, observable?: IObservable): void; /** * 移除一个通讯返回监听 * * @param {(IResponseDataConstructor|string)} clsOrType 要移除监听的返回结构构造器或者类型字符串 * @param {ResponseHandler} handler 回调函数 * @param {*} [thisArg] this指向 * @param {boolean} [once=false] 是否一次性监听 * @param {IObservable} [observable] 要发送到的内核 * @memberof NetManager */ unlistenResponse(clsOrType: IResponseDataConstructor | string, handler: ResponseHandler, thisArg?: any, once?: boolean, observable?: IObservable): void; /** * 发送多条请求,并且等待返回结果(如果有的话),调用回调 * * @param {RequestData[]} [requests] 要发送的请求列表 * @param {(responses?:ResponseData[]|Error)=>void} [handler] 收到返回结果或错误后的回调函数 * @param {*} [thisArg] this指向 * @param {IObservable} [observable] 要发送到的内核 * @memberof NetManager */ sendMultiRequests(requests?: RequestData[], handler?: (responses?: ResponseData[] | Error) => void, thisArg?: any, observable?: IObservable): void; /** * 异步版本的sendMultiRequests * * @author Raykid * @date 2019-03-08 * @param {RequestData[]} [requests] 要发送的请求列表 * @param {IObservable} [observable] 要发送到的内核 * @param {boolean} [canReject=false] 是否允许reject,默认false,即允许重试 * @returns {Promise<ResponseData[]>} 返回一个Promise用于异步监听回调 * @memberof NetManager */ sendMultiRequestsAsync(requests?: RequestData[], observable?: IObservable, canReject?: boolean): Promise<ResponseData[]>; /** 这里导出不希望用户使用的方法,供框架内使用 */ __onResponse(responseCls: IResponseDataConstructor, result: any, request?: RequestData): void | never; __onError(responseCls: IResponseDataConstructor, err: Error, request?: RequestData): void; private recurseResponse; } /** 再额外导出一个单例 */ export declare const netManager: NetManager;