1. https://github.com/krasimir/EventBus
  2. https://github.com/tbreuss/eventbus
window.eventHub = {
    events: {
        //'新周刊':[fn],
    },
    emit(eventName, data) { //发布
        //循环事件中心的所有事件,查找和传入的事件相符的那个
        //存下所有订阅该事件的用户,
        for (let key in this.events) {
            if (key === eventName) {
                let fnList = this.events[key];
                fnList.map((fn) => {
                    fn.call(undefined, data)
                })
            }
        }
    },
    //要订阅的事件名,以及要执行的函数(回调)
    on(eventName, fn) { //订阅
        if (this.events[eventName] === undefined) {
            this.events[eventName] = [];
            //事件中心是否有人订阅这个事件,不存在则初始化
        }
        this.events[eventName].push(fn)
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
一笔写于: 6/25/2022, 7:10:54 PM
扫码添加我的微信
个人
个人号
公众号
公众号