class EventEmitter{
constructor(){
this.message={}
}
on(type,fn){
if(!this.message[type]){
this.message[type]=[]
}
this.message[type].push(fn)
}
off(type,fn){
if(!this.message[type]) return;
if(!fn){
this.message[type]=undefined;
return;
}
this.message[type]=this.message[type].filter((item)=>item!==fn)
}
emit(type){
if(!this.message[type]) return;
this.message[type].forEach(item => {
item()
});
}
}
手写发布订阅者模式
于 2023-09-06 23:50:00 首次发布