跳到主要内容

readWorkingTreeStateRow()

function readWorkingTreeStateRow(executor, branchId): Promise<WorkingTreeState>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/capture-runtime.ts:193

取本分支的工作树状态行。

Parameters​

ParameterTypeDescription
executorTransactionExecutor调用方那个事务的执行器
branchIdstring目标分支 id

Returns​

Promise<WorkingTreeState>

该分支的状态行

Throws​

RxDBError 状态行缺失时

Remarks​

状态行主键与分支 id 逐字相同(commit/branch-commit-rows.ts),所以这里按主键取而不是 按外键列扫。缺行抛错,不补行:补出来的 workingTreeRevision = 0 会让另一个 Tab 手上的 CAS 依据凭空回到起点,而 commit 的并发仲裁全靠它。

导出而不是留在本模块内,是因为 status() / commit() / discard() 读的是同一行: 各自写一份「按主键取、缺行抛错」的话,某一处哪天改成「缺行当 0」,工作树 revision 就有了 两种读法,而 CAS 的并发仲裁正建立在全部调用方读到同一个值上。