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 @   流年sugar  阅读(294)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2020-04-01 ionic-menu 侧边栏
点击右上角即可分享
微信分享提示