本站即将关闭,请关注微信公众号
PDF 不迷路

当前位置:首页 >> 计算机 >> 怎样如何实现EventEmit

怎样如何实现EventEmit

怎样如何实现EventEmit

来源:网络 更新时间:不详

如果使用events库中的EventEmit,经过使用了解到EventEmit本质上是观察者模式的一种实现。


export default class EventEmitter {
  constructor() {
    this.event = {};
    this.maxListerners = 10;
  }
  // 监听
  on(type, listener) {
    if (this.event[type]) {
      if (this.event[type].length >= this.maxListerners) {
        console.error('同一个监听器最多被十个对象监听,否则可能造成内存泄漏.\n');
        return;
      }
      this.event[type].push(listener);
    } else {
      this.event[type] = [listener];
    }
  }
  //发送监听
  emit(type, ...rest) {
    if (this.event[type]) {
      this.event[type].map(fn => fn.apply(this, rest));
    }
  }
  //移除监听器
  removeListener(type) {
    if (this.event[type]) {
      delete this.event[type];
      console.log(this.event);
    }
  }
  //移除所有的监听器
  removeAllListener() {
    this.event = {};
  }
}

 代码调用如下


import EventEmit from './EventEmit';
let DeviceEventEmit = new EventEmit();
DeviceEventEmit.on('event', (param1, param2) => {
  console.log('DeviceEventEmit', param1, param2);
});
DeviceEventEmit.emit('event', 'param1', 'param2');
DeviceEventEmit.removeListener('event');

浏览器console即可查看结果

最新更新

更多>>  

声明:本网站所资源均通过互联网收录,并提供大家免费下载阅读,如果本站有侵犯权利人版权内容的请向本站投诉。

投诉邮箱:577982958@qq.com 一经核实,本站将立即删除相关收录作品。

© 2020 - 2021   qianherenli.com 版权所有

豫ICP备2020030583号-1


本站即将关闭,请关注微信公众号,PDF 不迷路