理解什么是 订阅 发布者模式:
- 看图说话,现在有2类用户群体(订阅公众号群体,发布公众号群体) 和 一个 平台(wx 平台)
- 你 通过 平台 订阅了 你喜欢的作者,作者发布文章你就可以推送给你。
这就是一个 最简单的 发布订阅模式,那么在代码层面是如何实现的呢
可以参考下面代码,跟注释就不难理解
<script>
var bus = {
list: [],
// 订阅
subscribe(callback) {
this.list.push(callback)
},
// 发布
publish(txt) {
// 当前的 list 就是 多个 subscribe 的回调函数.
// callback() 去执行 subscribe 并将 publish() 的 参数 传给 subscribe
this.list.forEach(callback => {
callback && callback(txt)
})
},
}
// 首先 需要 你去 订阅 作者
bus.subscribe((val) => {
// 作者 发布消息之后,你接收到 --------发布1, 过了1 秒,你再次接收到 --------发布2
// 即 当前 订阅发布结束
console.log('订阅1', val)
})
// 作者 发了 一个消息, --------发布1
setTimeout(() => {
bus.publish('--------发布1')
}, 0);
// 作者 过了1秒 又 发了 一个消息, --------发布2
setTimeout(() => {
bus.publish('--------发布2')
}, 1000);
</script>