跳到主要内容

WorkingTreeCapturePort

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/write-entry.ts:320

捕获所需的持久化操作

Remarks​

端口是注入的:捕获自己不开事务、不选适配器,它只在调用方给的那个事务上下文里按顺序发这 几笔。真实事务的原子性由适配器保证(conformance 套件在 6 个后端上核验),本模块负责的是 顺序、条件与副作用范围。

实现方在构造时就绑定到当前分支,所以方法签名里没有 branch—— captureCrudWrite 会先校验 token,确认这条分支正是调用方以为的那条。

Methods​

bumpWorkingTreeRevision()​

bumpWorkingTreeRevision(entryCountDelta): Promise<number>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/write-entry.ts:354

递增 workingTreeRevision,并把 entryCount 加上增量

Parameters​

ParameterTypeDescription
entryCountDeltanumber本次折叠给出的条目数变化

Returns​

Promise<number>

递增之后的 workingTreeRevision


persistEntry()​

persistEntry(row, entryCountDelta): Promise<void>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/write-entry.ts:346

落盘折叠结果

Parameters​

ParameterTypeDescription
rowWorkingTreeEntryRow | undefined折叠后的行;undefined 表示删除该实体的单元(净无变化)
entryCountDeltanumber与 row 同来自一次折叠,原样转交

Returns​

Promise<void>


readActiveBranchToken()​

readActiveBranchToken(): Promise<ActiveBranchToken>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/write-entry.ts:330

读取库里当前持久化的 active 分支 token

Returns​

Promise<ActiveBranchToken>

当前的分支身份

Remarks​

必须读持久化状态。BroadcastChannel 或内存里的副本都不跨进程重启, 而这条校验要拦的恰恰是「另一个 realm 在期间切过分支」。


readEntry()​

readEntry(key): Promise<WorkingTreeEntryRow | undefined>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/write-entry.ts:338

读取该实体已有的未提交单元

Parameters​

ParameterTypeDescription
keyWorkingTreeEntryKey实体身份三元组

Returns​

Promise<WorkingTreeEntryRow | undefined>

已有单元;没有则为 undefined