跳到主要内容

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

ParameterType
rxdbRxDB
runManagerRunManager
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

EntityTriggerDefinition[]


register()

register(def): () => void;

Defined in: packages/rxdb-plugin-trigger/src/core/entity-trigger-manager.ts:67

Parameters

ParameterType
defEntityTriggerDefinition

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

ParameterType
entitystring
event?EntityTriggerEvent

Returns

void