ConflictResolver
Defined in: packages/rxdb/src/sync-contract/conflict.ts:72
冲突解决器接口
可自定义实现。注意运行时能自动应用的解决结果只有 KEEP_LOCAL 与 KEEP_REMOTE,
返回 MERGE / DEFER 会让本轮拉取整体回滚,详见 ConflictResolution。
通过 PullOptions.conflictResolver 或 PullRepositoryOptions.conflictResolver 传入;不传则用 LWWConflictResolver。
Example
交互式选择(返回值仍须落在两种可应用结果上)
class MyResolver implements ConflictResolver {
async resolve(conflict: Conflict): Promise<ConflictResolution> {
const keepLocal = await showConflictDialog(conflict);
return { type: keepLocal ? 'KEEP_LOCAL' : 'KEEP_REMOTE' };
}
}
Methods
resolve()
resolve(conflict): Promise<ConflictResolution>;
Defined in: packages/rxdb/src/sync-contract/conflict.ts:79
解决单个冲突
Parameters
| Parameter | Type | Description |
|---|---|---|
conflict | Conflict | 冲突信息 |
Returns
Promise<ConflictResolution>
冲突解决结果
resolveAll()?
optional resolveAll(conflicts): Promise<ConflictResolution[]>;
Defined in: packages/rxdb/src/sync-contract/conflict.ts:89
批量解决冲突(可选优化)
默认实现会逐个调用 resolve()
Parameters
| Parameter | Type | Description |
|---|---|---|
conflicts | Conflict[] | 冲突列表 |
Returns
Promise<ConflictResolution[]>
解决结果列表