import { EventEmitter } from 'eventemitter3'; class H5SSE extends EventEmitter 代码解析

发布时间 2023-12-28 16:40:08作者: yoona-lin

import { EventEmitter } from 'eventemitter3';
class H5SSE extends EventEmitter
代码解析

通过eventemitter3源码学习Javascript设计模式:发布-订阅(观察者模式)

发布-订阅模式又叫观察者模式,它定义对象之间一对多的关系,当一个对象的状态发生变化时,所有依赖它的对象都将得到通知。在javascript开发中,我们一般使用事件模型来替代传统的发布-订阅模式。

上述代码是一个 TypeScript 类的定义,其中使用了 eventemitter3 模块中的 EventEmitter 类。让我们逐行解析代码:

import { EventEmitter } from 'eventemitter3';

这行代码从 eventemitter3 模块中导入了 EventEmitter 类。

class H5SSE extends EventEmitter {

这行代码定义了一个名为 H5SSE 的类,该类继承自 EventEmitter 类。

继承自 EventEmitter 类意味着 H5SSE 类可以使用事件的发布和订阅功能。EventEmitter 是一个常用的事件处理类,它允许类实例触发事件并允许其他对象订阅这些事件。

通过继承 EventEmitter 类,H5SSE 类可以使用以下方法和功能:

  • on(eventName, listener):订阅事件,当指定的事件被触发时执行回调函数。
  • once(eventName, listener):订阅一次性事件,当指定的事件第一次被触发时执行回调函数。
  • emit(eventName, ...args):触发指定的事件,并传递参数给事件的监听器。
  • removeListener(eventName, listener):从事件的监听器列表中移除指定的监听器。
  • 等等。

H5SSE 类中,你可以使用这些方法来处理事件和实现自定义的事件逻辑。

注意:在使用上述代码之前,确保已安装 eventemitter3 模块,可以使用 npm 或 yarn 进行安装。

通过eventemitter3源码学习Javascript设计模式:发布-订阅(观察者模式):https://zhuanlan.zhihu.com/p/472038219