EntityTriggerManager
Defined in: packages/rxdb-plugin-trigger/src/core/entity-trigger-manager.ts:43
EntityTriggerManager - 实体变更触发管理器
监听 RxDB 实体的增删改事件,自动触发关联的任务。
核心功能:
- 将 RxDB 实体变更事件(INSERT/UPDATE/DELETE)映射为任务触发
- 支持 filter 函数过滤不需要触发的场景
- 支持 payloadMapper 对载荷进行转换
- 支持防抖(debounce)合并高频变更
- 递归深度控制:通过 maxDepth 和 _triggerDepth 防止无限循环触发
- 触发链追踪:通过 _triggerSourceChain 记录触发链路
递归安全:
- 任务执行后写入的实体变更会携带 _triggerDepth 和 _triggerSourceChain 元数据
- maxDepth 默认值为 5,超过深度的变更不会触发新任务
- filter 函数可访问完整 payload,包括触发深度和链路信息
防抖支持:
- 防抖在 filter 和 payloadMapper 之后应用
- 合并后仍然携带最新的 transformed payload,而非原始实体快照
Constructors
Constructor
new EntityTriggerManager(
rxdb,
runManager,
processQueue): EntityTriggerManager;
Defined in: packages/rxdb-plugin-trigger/src/core/entity-trigger-manager.ts:51
Parameters
| Parameter | Type |
|---|---|
rxdb | RxDB |
runManager | RunManager |
processQueue | () => void |
Returns
EntityTriggerManager
Methods
bind()
bind(): void;
Defined in: packages/rxdb-plugin-trigger/src/core/entity-trigger-manager.ts:91
Returns
void
destroy()
destroy(): void;
Defined in: packages/rxdb-plugin-trigger/src/core/entity-trigger-manager.ts:110
Returns
void
list()
list(): EntityTriggerDefinition[];
Defined in: packages/rxdb-plugin-trigger/src/core/entity-trigger-manager.ts:87
Returns
register()
register(def): () => void;
Defined in: packages/rxdb-plugin-trigger/src/core/entity-trigger-manager.ts:67
Parameters
| Parameter | Type |
|---|---|
def | EntityTriggerDefinition |
Returns
() => void
unbind()
unbind(): void;
Defined in: packages/rxdb-plugin-trigger/src/core/entity-trigger-manager.ts:103
Returns
void
unregister()
unregister(entity, event?): void;
Defined in: packages/rxdb-plugin-trigger/src/core/entity-trigger-manager.ts:75
Parameters
| Parameter | Type |
|---|---|
entity | string |
event? | EntityTriggerEvent |
Returns
void