公布订阅因素

  • 缓存队列,寄存订阅者信息
  • 具备减少、删除订阅的能力
  • 状态扭转时告诉所有订阅者执行监听

公布订阅存在调度核心,状态产生扭转时,公布订阅毋庸被动告诉
模仿实现

class PubSub {  constructor() {    this._events = {};  }  // 注册  subScribe(event, cb) {    if (this._events[event]) {      // 如果以后event存在,所以咱们只须要往后增加以后次监听操作      this._events[event].push(cb);    } else {      // 之前没有订阅过此事件      this._events[event] = [cb];    }  }  // 公布  publish(event, ...args) {    const items = this._events[event];    if (items && items.length) {      items.forEach(function (cb) {        cb.call(this, ...args);      });    }  }}let ps = new PubSub();ps.subScribe("event1", () => {  console.log("event1 do");});ps.subScribe("event1", () => {    console.log("event1 do-----");  });ps.publish("event1");ps.publish("event1");