美文网首页
2019-10-26

2019-10-26

作者: 你的蓝孩财子 | 来源:发表于2019-10-26 15:27 被阅读0次

···
import React from '@react';
// var { subscribers } = React.getApp().globalData ;

function Event(eventName, callback) {
this.eventName = eventName;
this.callback = callback;
}

Event.prototype.removeListener = function() {
var { subscribers } = React.getApp().globalData ;
var index = subscribers.indexOf(this);
if (index != -1) {
subscribers.splice(index, 1);
}
};

var EventEmitter = {

addListener: function(eventName, callback) {
    var event = new Event(eventName, callback);
    var { subscribers } = React.getApp().globalData ; 
    subscribers.push(event);
    return event;
},
removeListener: function(event) {       //event 类型: string || Event || Array
    var { subscribers } = React.getApp().globalData ; 
    var rm = function(e) {
        var index = subscribers.indexOf(e);
        if (index != -1) {
            subscribers.splice(index, 1);
        }
    };

    if (typeof event == 'string') {
        subscribers.forEach(function(e,idx) {
            if (e.eventName == event) {
                subscribers.splice(idx, 1);
            }
        });
    } else if (event instanceof Event) {
        rm(event);
    } else if (event instanceof Array) {
        event.forEach(function(e) {
            EventEmitter.removeListener(e);
        });
    }
},
dispatch: function(eventName, param) {
    var { subscribers } = React.getApp().globalData ; 
    subscribers.forEach(function(event) {
        if (event.eventName === eventName) {
            event.callback && event.callback(param);
        }
    });
},
lookFunc: function(eventName) {
    let funcArr = [];
    var { subscribers } = React.getApp().globalData ; 
    subscribers.forEach(function(event) {
        if (event.eventName === eventName) {
            // event.callback && event.callback(param);
            funcArr.push(event.callback.toString());
        }
    });
    return funcArr;
}

};

export default EventEmitter;
···

相关文章

  • 2019-10-26 今天开始规划学习Vue.js

    2019-10-26 今天开始规划学习Vue.js

  • 10月26日

    2019-10-26 毛雅亭 字数 508 · 阅读 15 2019-09-25 08:27 ...

  • 文先森的日常 -- 剩51天

    日精进打卡第441天 姓名:李文杰 (四爷); 公司:中国太平人寿; 日期:2019-10-26 【知~学习】 《...

  • 鉴峰丨拯救自己,成为那束光

    鉴峰自我管理 [连续签到第654天] 2019-10-26 周六 世事多艰, 人说英雄, 拯救世界。 常人, 拯救...

  • 【德甲】弗赖堡VS莱比锡红牛

    开赛时间:2019-10-26 21:30星期六赛事分析弗赖堡近期的比赛下半场大球能力不差,近20场各项赛事17场...

  • 2019-10-26

    2019-10-26 魏从国~扬州市方圆建筑工程有限公司~第363期~感谢二组 【日精进打卡第 581 天 【知~...

  • 2019-10-26

    2019-10-26 打卡人:王素琴 公司:阜阳市豹子头服饰科技有限公司【日精进打卡第541天 【知~学习】 姓...

  • 自我-上班族日志

    2019-10-26 主题:出门带伞 周六,愉快的日子。 但从昨天开始,窗外的世界就下着绵绵细雨。 我本不想出门,...

  • 2019-10-26

    2019-10-26 姓名 :李宏清(单位)扬州市方圆建筑工程有限公司 哈尔滨363期反省二组 【日精进打卡第56...

  • 2019-10-26

    2019-10-26 姓名 :李宏清(单位)扬州市方圆建筑工程有限公司 哈尔滨363期反省二组 【日精进打卡第56...

网友评论

      本文标题:2019-10-26

      本文链接:https://www.haomeiwen.com/subject/rstuvctx.html