js 订阅发布者模式

理解什么是 订阅 发布者模式:
  1. 看图说话,现在有2类用户群体(订阅公众号群体,发布公众号群体) 和 一个 平台(wx 平台)
  2. 你 通过 平台 订阅了 你喜欢的作者,作者发布文章你就可以推送给你。

在这里插入图片描述

这就是一个 最简单的 发布订阅模式,那么在代码层面是如何实现的呢

可以参考下面代码,跟注释就不难理解

<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>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值