EventBus 原理

2020-01-10  本文已影响0人  HelenYin
const EventBus = {
    queue: {},
    on (eventName, cb) {
        this.queue[eventName] = this.queue[eventName] || [];
        this.queue[eventName].push(cb);
    },
    one (eventName, cb) {
        this.queue[eventName] = cb;
    },
    emit (eventName, ...arg) {
        const cbs = this.queue[eventName];
        for (const cb of cbs) {
            cb.apply(null, arg)
        }
    },
    off (eventName) {
        this.queue[eventName] = [];
    },
}

上一篇 下一篇

猜你喜欢

热点阅读