class PubSubs {
constructor() {
this.Emitter = {}
this.on = this.on
this.emit = this.emit
this.off = this.off
}
on(eventType, callback) {
if (typeof callback != 'function') throw new Error('缺少回调函数')
this.Emitter[eventType] = callback
}
emit(eventType, ...args) {
if (this.Emitter.hasOwnProperty(eventType)) {
this.Emitter[eventType](...args)
} else {
throw new Error(eventType + ':事件未注册')
}
}
off(eventType, callback) {
if (this.Emitter.hasOwnProperty(eventType)) {
delete this.Emitter[eventType]
} else {
throw new Error(eventType + ':事件未注册')
}
}
}
export const PubSub = new PubSubs()
js 发布订阅者模式
最新推荐文章于 2024-09-29 11:25:09 发布
该文章介绍了一个名为PubSubs的类,它实现了事件发布/订阅模式。类中包含on、emit和off方法,分别用于订阅事件、触发事件和取消订阅。当尝试触发未注册的事件时,会抛出错误。PubSubs实例在全局作为PubSub导出,供其他部分使用。
摘要由CSDN通过智能技术生成