diff --git a/imp.js b/imp.js deleted file mode 100644 index 631dda8..0000000 --- a/imp.js +++ /dev/null @@ -1,42 +0,0 @@ -class SimplePubSub { - events = []; - subscribe(event, listener) { - this.events.push({ event, listener }); - } - - unsubscribe(event, listener) { - this.events = this.events.filter(item => item.event !== event || item.listener !== listener); ; - } - publish(event, data) { - this.events.forEach(item => { - if (item.event === event) { - item.listener(data); - } - }); - } -} - -// 创建 PubSub 实例 -const pubSub = new SimplePubSub(); - -// 定义订阅者 -const subscriber1 = (data) => { - console.log(`Subscriber 1 received: ${data}`); -}; - -const subscriber2 = (data) => { - console.log(`Subscriber 2 received: ${data}`); -}; - -// 订阅事件 -pubSub.subscribe('event1', subscriber1); -pubSub.subscribe('event1', subscriber2); - -// 发布事件 -pubSub.publish('event1', 'Hello, World!'); - -// 取消订阅 -pubSub.unsubscribe('event1', subscriber1); - -// 发布事件 -pubSub.publish('event1', 'Hello again!'); \ No newline at end of file