JS怎么实现简易观察者模式
原创// 观察或消息发布机构
class Subject {
constructor(name) {
this.name = name
this.observers = [] // 存储观察者
this.state = // 发布的消息
}
subscribe(observer){
this.observers.push(observer)
}
unsubscribe(observer){
this.observers = this.observers.filter(item => {
return item !== observer
})
}
setState(newState){ // 更改观察者的状态并通知用户感兴趣。
this.state = newState
this.observers.forEach(item => {
item.update(newState)
})
}
}
// 观察者
class Observer {
constructor(name){
this.name = name
}
update(newState) {
console.log(this.name + 接收到了 + newState)
}
}
let sub = new Subject(发布主题)
let a = new Observer(用户A)
let b = new Observer(用户B)
// 订阅观察家
sub.subscribe(a)
sub.subscribe(b)
// 发布消息
sub.setState(新版本内容)
// 用户A 接收到了 新版本内容
// 用户B 接收到了 新版本内容
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
上一篇:react怎么做性能优化 下一篇:react中setState更新状态几种方式