export const Subject = (eventName = 'default') => {
this.observerList = [];
this.eventName = eventName;
this._T;
}
Subject.proptotype.add = (observe) {
if(Array.isArray(observer)){
this.observerList.push(...observe);
}else{
this.observerList.push(observer);
}
}
Subject.prototype.remove = (observe)=>{
const index = this.observerList.findIndex((item=>item === observer));
if(index !== -1){
this.observerList.splice(index,1)
}else{
return false;
}
}
Subject.proptotype.notify = function(data){
clearTimeout(this._T);
this._T = setTimeout (()=>{
const observerList = this.observerList;
for (let i=0,len = observerList.length; i<len; i++) {
observerList[i].update({eventName:this.eventName,data})
}
},500)
}
export const Observer = (fn)=>{
const _fn = fn;
this.update = function(data){
_fn(Data);
}
}
观察者模式
最新推荐文章于 2023-08-19 11:51:16 发布