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] = [];
},
}