添加 pubsub.ts

This commit is contained in:
sealday 2024-07-03 15:21:51 +08:00
commit b8acd0a3e4

30
pubsub.ts Normal file
View File

@ -0,0 +1,30 @@
interface PubSub {
subscribe(event: string, listener: (data: any) => void): void;
unsubscribe(event: string, listener: (data: any) => void): void;
publish(event: string, data: any): void;
}
// 创建 PubSub 实例
const pubSub = new SimplePubSub();
// 定义订阅者
const subscriber1 = (data: any) => {
console.log(`Subscriber 1 received: ${data}`);
};
const subscriber2 = (data: any) => {
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!');