跳到主要内容

findFirstReplayIncompatibility()

function findFirstReplayIncompatibility(
executor,
codec,
path
): Promise<
| RestoreIncompatibility
| undefined>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/restore-precheck.ts:259

沿一条已选定的路径找首个不兼容节点。

Parameters​

ParameterTypeDescription
executorTransactionExecutor当前事务执行器
codecWorkingTreePatchCodecContext元数据解析上下文;这里只用到 resolveTargetMetadata
pathreadonly string[]重放路径,按重放顺序

Returns​

Promise< | RestoreIncompatibility | undefined>

首个不兼容节点,全兼容则 undefined

Remarks​

命中即返回,不继续读后面的节点——FR-050 那句「检查期间不得解码或写入后续 ChangeSet」 在这里的物理含义就是这个 return。

单独导出是给 restore-command.ts 用的:它已经为「目标可不可达」调过一次 selectRestoreReplayPath,再走一遍 checkRestoreCompatibility 会把整条父链 重新遍历一次,而那两次遍历之间没有任何东西能变(同一个事务)。