@actualwave/event-dispatcher

中文文档
1.3.3发布于 2026/05/04MITTypeScriptES Module零依赖近 30 天下载 1709

Event Dispatcher是一个JavaScript类,它向自定义对象添加事件支持.

中文使用文档
文档目录6 节
  1. 安装
  2. 使用量
  3. API 密码
  4. 事件发送者
  5. 活动
  6. Claude/ AI 特工Skill

事件发送者

Build Status Coverage Status

只是另一个事件 发送者/事件目标 执行.

安装

易于安装 无 软件包管理器

npm install --save @actualwave/event-dispatcher

与 线条 软件包管理器

yarn add @actualwave/event-dispatcher

使用量

注意: EventDispatcher 分发包中包含包裹入UMD包装器的包,因此可以使用任意AMD模块加载器,节点 require() 或无所取.

要开始使用事件Dispatcher, 只是即时化它自己

class MyClass {
  constructor() {
    this._dispatcher = new EventDispatcher();
  }
  addListener(handler) {
    this._dispatcher.addEventListener('didSomething', handler);
  }
  doSomething() {
      this._dispatcher.dispatchEvent('didSomething');
  }
}

和你的课一起延长

class MyClass extends EventDispatcher {
  doSomething() {
    this.dispatchEvent('didSomething');
  }
}

即兴表演后 MyClass,每一个呼叫 doSomething() 将开火事件 didSomething 并且每个随附此事件的听众都会被调用事件对象作为参数 .

var myObj = new MyClass();
myObj.addEventListener('didSomething', function(event) {
  console.log('My Listener', event.type);
});
myObj.doSomething();

添加听众时, 执行顺序与添加的顺序相同 。 要更改顺序, 您可以使用可选 priority 参数到 addEventListener() 方法.

myObj.addEventListener('didSomething', function(event) {
  console.log('Prioritized Listener', event.type);
}, 1);
myObj.doSomething();

默认优先级设定为0,您可以指定更高优先级 > 0或更低的 < 0,仅允许整数值.

射击事件,你应该使用 dispatchEvent() 方法,可以用三种方式: 您只能通过事件类型字符串 。 在此情况下, 对象将由 EventDispatcher

var dispatcher = new EventDispatcher();
dispatcher.dispatchEvent('eventType');

用事件类型, 您可以指定任何数据, 作为第二个参数, 数据应该随事件一起传递

dispatcher.addEventListener('eventType', function(event) {
  console.log('My Listener', event.type, event.data);
});
dispatcher.dispatchEvent('eventType', {myData: 'something'});

您也可以通过事件对象, 它必须包含 type:String 属性

dispatcher.dispatchEvent({type: 'eventType', data: 'data is optional'});

如果您想要完全控制事件Dispatcher的起火事件, 您可以指定事件预处理器功能, 在事件发射前会为每次事件调用 。 3⁄4 ̄ ̧漯B.

function eventPreprocessor(event){
  event.data = event.data || {};
  return event;
}
var dispatcher = new EventDispatcher(eventPreprocessor);
dispatcher.dispatchEvent('eventType');

eventPreprocessor() 函数将随事件对象调用,返回对象将被使用.

项目实例 example 文件夹。 首先尝试实例运行服务器

npm run server

接下来去 http://localhost:8081/index.html (中文(简体) )

API 密码

事件发送者

  • 添加事件倾听器(事件Type:String,收听者:Function,优先级:int=0):void - 在事件类型中添加收听者. 此外,还可以设定优先级,更高的值允许调用听众在他人之前,更低 -- -- 之后。 同一收听器可以使用不同的优先级添加到事件类型. 默认为0.
  • 有事件收听器(eventType:String):void - 检查是否在事件类型中添加了收听器.
  • 删除事件收听器(eventType:String,收听者:Function):void - 从指定类型的事件中删除事件收听者.
  • 删除全部事件收听器(eventType: String): void - 从指定类型的事件中删除所有听众.
  • 发送事件(事件Type:String,数据:Object=null):void - 调度事件 eventType 通过 data。将创建内置类事件的对象,并将其传递给听众作为第一个参数.
  • 发送事件(事件:Object:void - 事件对象应该被发射,可以是任何物体. 只有要求 -- -- 它必须包含字段 type 带有事件类型.

事件Dispatcher 构建器接受可选参数 eventPreprocessor(event:Object):Object,该函数接收事件对象作为参数,并应当返回同一或新的/已更改的事件对象,这些对象将传递给事件听众.

活动

内设班级代表已发送事件. 事件类的对象用于调用调度 Event () 方法时 eventType。 。 。 .

  • 类型: string - 事件类型.
  • 数据: 对象 - 数据对象传递给 EventDispatcher.dispatchEvent() 方法.
  • 默认(:void - 将会将"被防止"的旗帜从FALSE改为TRUE,可以通过 isDefaultPrevented() 方法.
  • 已默认(:Boolean - 如果 preventDefault() 被调用.

任何事件(内置事件类别或作为事件传递的任何其他物体的发生)在发送时都会获得额外的方法. 周期完成后,这些方法将从事件对象中移除.

  • 停止预览(:void) - 处理所有同样优先的收听者后停止事件传播.
  • 立即停止 Propagation(:void) - 停止当前收听器上的事件传播.

Claude/ AI 特工Skill

这个软件包包括 SKILL.md 文件( 编号代理技能 格式),它教AI编码助理如何使用库. 当安装为 npm 依赖时,该技能在 node_modules/@actualwave/event-dispatcher/dist/SKILL.md 并且可以被克洛德代码或任何相容的代理来加载,以获得准确,最新的使用指导而无需依赖训练数据.

写为 堆叠编辑。 。 。 .

版本与发布记录

@actualwave/event-dispatcher 共发布 8 个版本,首次发布于 2018/04/08;过去 12 个月发布了 3 个版本。

版本发布日期距今
1.3.3latest2026/05/046 个月前
1.3.22026/05/026 个月前
1.3.12026/05/026 个月前
1.2.22018/10/168 年前
1.2.12018/10/158 年前
1.2.02018/10/158 年前

关于 @actualwave/event-dispatcher 的常见问题

@actualwave/event-dispatcher 是什么?

Event Dispatcher是一个JavaScript类,它向自定义对象添加事件支持.

如何安装 @actualwave/event-dispatcher?

在项目目录运行 npm install @actualwave/event-dispatcher,或使用 pnpm add / yarn add / bun add。

@actualwave/event-dispatcher 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@actualwave/event-dispatcher 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@actualwave/event-dispatcher 可以商用吗?

@actualwave/event-dispatcher 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@actualwave/event-dispatcher 的下载量有多少?

根据 npm 官方下载统计,@actualwave/event-dispatcher 在 2026/10/05 – 2026/11/03 这 30 天内被下载 1,709 次,日均约 57 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@actualwave/event-dispatcher 还在维护吗?

最新版本 1.3.3 发布于 2026/05/04(6 个月前);至今共发布 8 个版本,其中过去 12 个月发布了 3 个;首次发布于 2018/04/08。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。