# @equinor/fusion-framework-module-event 中文文档

规范地址：https://npmcn.com/package/%40equinor/fusion-framework-module-event/

版本：6\.1\.4
npm 元数据更新时间：2026-11-12T09:56:13.240Z
中文译文更新时间：2026-11-13T20:16:11.329Z
软件包许可：ISC

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40equinor/fusion-framework-module-event
原文对照：https://npmcn.com/package/%40equinor/fusion-framework-module-event/?lang=original
源码仓库：https://github.com/equinor/fusion-framework

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：251 kB，49 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2022-08-18T14:38:00.331Z
- 最新版本发布：2026-11-12T09:56:12.774Z
- 近 30 天下载量：12224（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：102（近 12 个月 17 个）

## 中文简介

事件合并模块

## 安装

```sh
npm install @equinor/fusion-framework-module-event
```

也可以使用：`pnpm add @equinor/fusion-framework-module-event`、`yarn add @equinor/fusion-framework-module-event`、`bun add @equinor/fusion-framework-module-event`

## README

# @ equinor/ 组合框架- 模块- 事件

Async事件为Fusion框架发送模块. 通过以本地 DOM 为模式的事件系统,实现框架模块(兄弟姐妹)之间以及父母/子女之间的类型安全通信 `EventTarget`不过 **同步发送** 因此可以正确等待可取消的事件.

> **重要内容:** 发送时a `cancelable` 事件 **必须** `await` 页:1 `dispatchEvent` 电话 发射而无 `await` 表示 `preventDefault()` 听众的电话不会被尊重.

## 谁应该用这个

-   **模块作者** 其他模块可以作出反应.
-   **应用程序开发者** 想要截取、记录或取消流经框架的事件.
-   **图书馆消费者** 用于分析、调试或交叉关切.

## 文档

| 专题 | 说明 |
| --- | --- |
| [配置](https://npmcn.com/package/%40equinor/fusion-framework-module-event/docs/configuration.md) | `onDispatch`编号 :`onBubble` 通过钩子和注册自定义事件类型 `FrameworkEventMap` |
| [可观察模式](https://npmcn.com/package/%40equinor/fusion-framework-module-event/docs/observable-patterns.md) | `event$`, (中文(简体) ), `filterEvent`,则 `./operators` 子路径 |
| [生命周期](https://npmcn.com/package/%40equinor/fusion-framework-module-event/docs/lifecycle.md) | 调度顺序、可取消的事件和起伏 |
| [测试](https://npmcn.com/package/%40equinor/fusion-framework-module-event/docs/testing.md) | `waitForEvent`, (中文(简体) ), `watchEvents`,并使用铃声 `ModulesConfigurator` 测试中 |

## 快开始

### 安装

```sh
pnpm add @equinor/fusion-framework-module-event
```

事件模块在初始化Fusion框架时默认包含在内,因此只有在独立使用时才需要明确安装.

### 听一个事件

```ts
const teardown = modules.event.addEventListener('onModulesLoaded', (event) => {
  console.log('All modules loaded:', event.detail);
});

// remove the listener when no longer needed
teardown();
```

### 发送活动

```ts
const event = await modules.event.dispatchEvent('myEvent', {
  detail: { id: 42 },
  cancelable: true,
});

if (!event.canceled) {
  performAction();
}
```

## API 概览

| 导出 | 仁爱 | 目的 |
| --- | --- | --- |
| `FrameworkEvent` | 类 | 基本活动 `detail`, (中文(简体) ), `source`,取消/泡泡旗帜 |
| `FrameworkEventInit` | 类型 | 构建事件时通过的选项 |
| `FrameworkEventMap` | 接口 | 广泛的登记册绘图事件名称 事件类型 |
| `FrameworkEventHandler` | 类型 | 听取者召回签名( 同步或同步) |
| `IEventModuleProvider` | 接口 | 事件提供者的公共 API (P)`addEventListener`, (中文(简体) ), `dispatchEvent`, (中文(简体) ), `event$`(中文(简体) ) |
| `EventModuleProvider` | 类 | 默认提供者执行 |
| `EventModuleConfig` | 类型 | 已解析的配置钩( R)`onDispatch`, (中文(简体) ), `onBubble`(中文(简体) ) |
| `EventModuleConfigurator` | 类 | 流利的配置构建器( S)`setOnDispatch`, (中文(简体) ), `setOnBubble`()——见 [配置](https://npmcn.com/package/%40equinor/fusion-framework-module-event/docs/configuration.md) |
| `IEventModuleConfigurator` | 类型 | _折旧_ 别名用于 `EventModuleConfig` |
| `filterEvent` | 函数 | RxJS 运算符缩小 `event$` 改为单个已注册事件类型 |
| `EventModule` 编号 : `eventModuleKey` | 类型/ 连接 | 模块定义和密钥`'event'`(中文(简体) ) |

### 子路径

| 子路径 | 出口 | 目的 |
| --- | --- | --- |
| `./operators` | `filterEvent` | RxJS 可管道运算符结束 `event$` (也从包根再出) |
| `./utils` | `waitForEvent`, (中文(简体) ), `watchEvents` | 在应用程序代码或测试中等待/收集已发送事件的普通助手 |

## 常见问题

### @equinor/fusion-framework-module-event 是什么？

事件合并模块

### 如何安装 @equinor/fusion-framework-module-event？

在项目目录运行 npm install @equinor/fusion-framework-module-event，或使用 pnpm add / yarn add / bun add。

### @equinor/fusion-framework-module-event 支持 TypeScript 吗？

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

### @equinor/fusion-framework-module-event 支持 ESM 还是 CommonJS？

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

### @equinor/fusion-framework-module-event 可以商用吗？

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

### @equinor/fusion-framework-module-event 的下载量有多少？

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

### @equinor/fusion-framework-module-event 还在维护吗？

最新版本 6\.1\.4 发布于 2026/11/12（1 天前）；至今共发布 102 个版本，其中过去 12 个月发布了 17 个；首次发布于 2022/08/18。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

