SyncHistoryBridge
Defined in: packages/rxdb-plugin-history/src/sync-history-bridge.ts:33
Internal
同步插件可见的历史侧能力。
Remarks
由 VersionManager.syncBridge 提供,SyncManager 在构造时接过去。
Properties
pushInFlight
readonly pushInFlight: PushInFlightRegistry;
Defined in: packages/rxdb-plugin-history/src/sync-history-bridge.ts:42
「哪些变更此刻正在飞往远端」的登记处。
Remarks
push 与 undo 唯一的会合点,主人是 VersionManager —— undo 侧经
rxdb.versionManager.pushInFlight 读它,push 侧经本桥认领区间。
两边读的必须是同一个实例,见 PushInFlightRegistry。
Methods
beginPullableSettlement()
beginPullableSettlement(): number;
Defined in: packages/rxdb-plugin-history/src/sync-history-bridge.ts:64
pull 开始前签发结算令牌。
Returns
number
令牌,交回 settlePull / settleAbortedPull / reconcilePullableCount
Remarks
必须在真正发起 pull 之前取:拉取期间到达的远端事件描述的是快照之后的新变更, 结算时要能看出来,否则「完整同步」的归零会把它们一起吞掉。
clearUndoHistory()
clearUndoHistory(): void;
Defined in: packages/rxdb-plugin-history/src/sync-history-bridge.ts:52
与远端合并之后清空当前分支的 undo/redo —— 合并前的内容已经 undo 不回去了
Returns
void
incrementPullableCount()
incrementPullableCount(count): void;
Defined in: packages/rxdb-plugin-history/src/sync-history-bridge.ts:99
远端事件到达时累加待拉计数。
Parameters
| Parameter | Type | Description |
|---|---|---|
count | number | 本次事件里属于当前激活分支的条数 |
Returns
void
reconcilePullableCount()
reconcilePullableCount(token, count): void;
Defined in: packages/rxdb-plugin-history/src/sync-history-bridge.ts:92
用远端水位线校准待拉计数。
Parameters
| Parameter | Type | Description |
|---|---|---|
token | number | beginPullableSettlement 签发的令牌 |
count | number | 按各仓库持久化水位线算出的待拉总数 |
Returns
void
settleAbortedPull()
settleAbortedPull(token, pulled): void;
Defined in: packages/rxdb-plugin-history/src/sync-history-bridge.ts:84
按一次抛错 pull 已落库的部分结算待拉计数。
Parameters
| Parameter | Type | Description |
|---|---|---|
token | number | beginPullableSettlement 签发的令牌 |
pulled | number | 抛错前已经真实落库的条数,一条都没落时传 0 |
Returns
void
Remarks
令牌必须收回,否则代次永远停在旧值,后续结算全被判成「并发」。
settlePull()
settlePull(
token,
options,
result
): void;
Defined in: packages/rxdb-plugin-history/src/sync-history-bridge.ts:73
按一次成功 pull 的实际覆盖范围结算待拉计数。
Parameters
| Parameter | Type | Description |
|---|---|---|
token | number | beginPullableSettlement 签发的令牌 |
options | PullOptions | undefined | 发起 pull 时的选项 |
result | PullResult | pull 的结果 |
Returns
void
syncing()
syncing<T>(fn): Promise<T>;
Defined in: packages/rxdb-plugin-history/src/sync-history-bridge.ts:49
在可重入同步上下文中执行:期间产生的本地写入不进 undo/redo 栈。
Type Parameters
| Type Parameter |
|---|
T |
Parameters
| Parameter | Type | Description |
|---|---|---|
fn | () => Promise<T> | 同步动作 |
Returns
Promise<T>