首页 > 其他分享 >import { EventEmitter } from 'eventemitter3'; class H5SSE extends EventEmitter 代码解析

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

时间:2023-12-28 16:46:14浏览次数:19  
标签:订阅 代码 H5SSE EventEmitter extends 事件 eventemitter3

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

标签:订阅,代码,H5SSE,EventEmitter,extends,事件,eventemitter3
From: https://www.cnblogs.com/yoona-lin/p/17933008.html

相关文章

  • 在 TypeScript 中,extends
    extends是一个关键字,用于指定类型参数的约束。它在类型参数的声明中使用,以确保类型参数满足特定的条件。具体来说,extends后面可以跟随一个类型,表示类型参数必须是该类型的子类型。在泛型类型或泛型函数中,这样的约束可以提供更强的类型安全性,使得类型参数符合特定的要求。以下......
  • vuejs3.0 从入门到精通——provide、inject、mixins、extends
    provide、inject、mixins、extends一、provide二、inject三、mixins四、extendshttps://cn.vuejs.org/api/options-composition.html#mixins 一个包含组件选项对象的数组,这些选项都将被混入到当前组件的实例中。interfaceComponentOptions{mixins?:ComponentOptio......
  • extends 类继承
    使用extends关键字可以实现继承例如:classDogextendsAnimal{}代表Dog类继承自Animal类使用继承后,子类会拥有父类所有的方法和属性通过继承可以将多个类中共有的代码写在一个父类当中这样只需要写一次即可让所有的子类都同时拥有父类中的属性和方法如果希望在子类中添加一......
  • 在泛型中extends和super是两个关键字区别
    在泛型中,extends和super是两个关键字,用于限制泛型类型参数的上界和下界。它们在泛型中的使用有以下区别:extends:用于限制泛型类型参数的上界,表示类型参数必须是指定类型或其子类型。在使用extends时,我们可以从泛型对象中获取数据,但不能添加任何元素。示例代码:publicclassMyC......
  • Java 中 extends 与implements 的区别 ?
    一、介绍extends与implements的概念1、类与类之间的继承使用extends:子类extends父类的属性和方法,并且进行扩展或者重写。//父类classAnimal{publicvoideat(){System.out.println("Animaliseating");}publicvoidnoeat(){......
  • class<T extends interface> 或 class<T extends abstract class>
    packagecom.java3y.austin.test;abstractclassA{publicabstractvoidtest();}classBextendsA{B(){System.out.println("B的构造函数");}@Overridepublicvoidtest(){System.out.println("B的test函数"......
  • SAP UI5 manifest.json 文件里 extends 区域的内容是如何被解析的
    笔者这篇教程介绍了如何在SAPFioriElements应用的manifest.json里注册Extensionfragment,从而给ListReport应用的Table区域新增自定义列:10.如何通过扩展(Extension)的方式给SAPFioriElementsListReport的表格新增列我浏览器打开了SAPFioriElements应......
  • java如何往List<? extends number>中加入元素?体会范型集合父子关系以及范型通配符的使用
    以下来自一个stackoverflow的一个问答,写的很清楚。基本上就是子类集合的引用付给父类引用,如果父类的引用变量声明的是<?extendsParent>,则父类引用变量只能对集合进行读操作,读出来的变量是Parent类型,这是因为不确定该父类引用变量指向的是什么类型的集合,可以是Child1,也可以C......
  • extendscript
    //获取当前活动序列varactiveSequence=app.project.activeSequence;//获取视频轨道和标签的位置varvideoTrack=activeSequence.videoTracks[0];//假设视频位于第一个视频轨道varmarker1=activeSequence.markers[0];varmarker2=activeSequence.markers[1];//......
  • servJump extends HttpServlet //request.getRequestDispatcher //response.sendRed
    packagecom.test;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.HashMap;importjava.util.Map;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;impo......