LWWConflictResolver
Defined in: packages/rxdb/src/sync-contract/LWWConflictResolver.ts:21
Last-Write-Wins 冲突解决器
基于 createdAt 时间戳,更晚的变更胜出 这是默认的冲突解决策略
Example
const resolver = new LWWConflictResolver();
const resolution = await resolver.resolve(conflict);
if (resolution.type === 'KEEP_LOCAL') {
// 使用本地变更
} else {
// 使用远程变更
}
Implements
Constructors
Constructor
new LWWConflictResolver(): LWWConflictResolver;
Returns
LWWConflictResolver
Methods
resolve()
resolve(conflict): Promise<ConflictResolution>;
Defined in: packages/rxdb/src/sync-contract/LWWConflictResolver.ts:35
解决单个冲突
比较本地和远程变更的 createdAt 时间戳,更晚的胜出。
时间戳相同时按 clientId 字典序决胜 —— 这是全局确定的:两个副本从各自视角
拿到的是同一对 clientId,因此独立解决后会收敛到同一份数据。
若固定「本地优先」,A 和 B 都会保留自己,永久分叉且每次同步都再冲突一次。
clientId 缺失或两侧相同时无从判别,退回本地优先。
Parameters
| Parameter | Type | Description |
|---|---|---|
conflict | Conflict | 冲突信息 |
Returns
Promise<ConflictResolution>
冲突解决结果
Implementation of
resolveAll()
resolveAll(conflicts): Promise<ConflictResolution[]>;
Defined in: packages/rxdb/src/sync-contract/LWWConflictResolver.ts:67
批量解决冲突
逐个调用 resolve() 方法
Parameters
| Parameter | Type | Description |
|---|---|---|
conflicts | Conflict[] | 冲突列表 |
Returns
Promise<ConflictResolution[]>
解决结果列表