js 实现简单发布订阅模式

1.事件调度器

class EventEmitter {
  constructor() {
    this.events = {};
  }
 
  on(event, listener) {
    if (!this.events[event]) {
      this.events[event] = [];
    }
    this.events[event].push(listener);
  }
 
  emit(event, ...args) {
    if (this.events[event]) {
      this.events[event].forEach(listener => {
        listener.apply(this, args);
      });
    }
  }
}

订阅事件

// 使用示例
const emitter = new EventEmitter();
 
// 订阅事件
emitter.on('greeting', (name) => {
  console.log(`Hello, ${name}!`);
});

发布事件

// 发布事件
emitter.emit('greeting', 'World'); // 控制台输出: Hello, World!

 

posted @ 2024-04-01 09:12  流年sugar  阅读(343)  评论(0)    收藏  举报