0
点赞
收藏
分享

微信扫一扫

原生JS实现发布订阅功能

i奇异 2022-02-16 阅读 45
javascript
var bus = {

  list: [],

  //订阅
  subscribe(callback) {
    this.list.push(callback)
  },

  //发布
  publish(text) {
    console.log('打印所有订阅者的方法:' + this.list)
    console.log('打印发布者的发布的数据:' + text)
    //遍历所有的list,将回调函数执行
    this.list.forEach((item) => {
      item && item(text)
    })
  },
}

//订阅者
bus.subscribe((callback) => {
  console.log('接收发布者的数据:', callback)
})

//发布者
setTimeout(() => {
  bus.publish('我发了一句话')
}, 0)

必须在发布之前订阅,否则订阅者接收不到数据

举报

相关推荐

0 条评论