var obj = {
event:{},
on:function(key,fn){
if(this.event[key]){
this.event[key].callFn.push(fn);
this.event[key].history.forEach(item=>{
fn.apply(this,item)
})
}else{
this.event[key] = {
history:[],
callFn:[fn]
}
}
},
emit:function(){
let key = Array.prototype.shift.call(arguments);
if(this.event[key]){
if(this.event[key].callFn.length){
this.event[key].callFn.forEach(item=>{
item.apply(this,arguments)
})
}else{
this.event[key].history.push(arguments)
}
}else{
this.event[key] = {
history:[arguments],
callFn:[]
}
}
}
}
js 发布订阅模式之订阅历史消息
最新推荐文章于 2024-07-30 16:49:30 发布