123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- export class eventManager {
- private static _instance: eventManager;
- private constructor() { }
- public static get instance(): eventManager {
- if (!this._instance) {
- this._instance = new eventManager();
- }
- return this._instance;
- }
- acList: any = {};
- on(ac: string | number, cb: Function, sender: any) {
- let arr = this.acList[ac];
- if (!arr) {
- arr = [];
- this.acList[ac] = arr;
- }
- // 避免重复添加
- for (let i in arr) {
- let item = arr[i];
- if (item.sender == sender) {
- return;
- }
- }
- let item: any = {};
- item.cb = cb;
- item.sender = sender;
- arr.push(item);
- }
- off(ac: string | number, cb: Function, sender: any) {
- let arr = this.acList[ac];
- if (!arr) {
- return;
- }
- let tmpArr = [];
- for (let i in arr) {
- let item = arr[i];
- if (item.cb == cb || item.sender == sender) {
- continue;
- }
- tmpArr.push(item);
- }
- this.acList[ac] = tmpArr;
- }
- send(ac: string | number, data?: any) {
- let arr = this.acList[ac];
- if (!arr) {
- return;
- }
- try {
- for (let i in arr) {
- let item = arr[i];
- let cb = item.cb;
- let sender = item.sender;
- let info = {
- ac: ac,
- data: data
- };
- cb.call(sender, info);
- }
- } catch (err) {
- console.log("eventManager send error:" + err.message, ac, data, err);
- }
- }
- }
|