跳到主要内容

RxDBBranchSwitchTakeoverContext

Defined in: packages/rxdb/src/rxdb-plugin-system.ts:151

RxDBSystemContribution.takeOverBranchSwitch 拿到的上下文

Remarks​

与 RxDBBranchSwitchContext 的差别只有一处,而那一处决定了两个钩子的分工: 这里没有 executor。接管方要做的前两件事(拉远端快照、逐页落库)塞不进任何一次 切换事务——网络 I/O 握着写事务不放会把整个库锁到超时,而逐页落库的全部意义就是 「崩在中途也留得住」,与「同生共死」正相反。所以接管方先在事务外把它们做完,最后一步 再由它自己发起 adapter.switchBranch(),把提交屏障放进那次切换的 prepare 里—— 物化与切 active 同一个事务,要么都落、要么都不落。

Properties​

currentBranchId​

readonly currentBranchId: string | null;

Defined in: packages/rxdb/src/rxdb-plugin-system.ts:153

当前分支 id;一条 active 分支都没有时为 null


preconditions​

readonly preconditions:
| RxDBBranchSwitchPreconditions
| undefined;

Defined in: packages/rxdb/src/rxdb-plugin-system.ts:159

调用方提出的前置条件;没提出时是 undefined,与空对象是同一件事


targetBranchId​

readonly targetBranchId: string;

Defined in: packages/rxdb/src/rxdb-plugin-system.ts:156

要切过去的分支 id