- 订阅者注册事件到调度中心
- 发布者发布事件到调度中心
- 当发布者发布事件的时候,订阅中心统计调度订阅者触发相关事件。
代码
// 创建一个订阅中心
class Bus {
constructor() {
this.obj = {}
}
on(key, fn) {
this.obj[key] = fn;
}
emit(key, value) {
this.obj[key].call(this, value);
}
}
let bus = new Bus();
// 订阅一个name为test1的事件
bus.on('test1', (val) => {
console.log('test1', 'value:' + val)
});
// 订阅一个name为test2的事件
bus.on('test2', function (val) {
console.log('test2', 'value:' + val)
});
setTimeout(() => {
// 触发test1
bus.emit('test1', 1)
// 触发test2
bus.emit('test2', 2)
}, 1000)