发布订阅者模式包括发布人/订阅者/订阅中心
你可以想象这么一个场景,张三/李四/王五(订阅者)需要订报纸,邮局(订阅中心)提供订报纸服务,报纸发行商(发布者)提供报纸,当报纸发行商发行报纸时通知邮局,邮局在根据订阅数据通知各个订阅者。
代码实现
// on emit 客户在邮局订阅报纸,报纸发行方发行报纸邮局通知每一个订阅者
//订阅中心
let e = {
_callBack:[],
on(callBack){
this._callBack.push(callBack)
},
emit(value){
this._callBack.forEach(method=>{
method(value)
})
}
}
//订阅者
e.on(function(value){
console.log('张三订阅:'+value)
})
e.on(function (value) {
console.log('李四订阅:' + value)
})
e.on(function (value) {
console.log('王五订阅:' + value)
})
//发布者
e.emit('中央日报')