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