SyncBranchSkipReason
type SyncBranchSkipReason =
| {
cause: "invalid-id";
}
| {
cause: "unresolved-from-change-id";
}
| {
ancestorId: string;
cause: "ancestor-skipped";
};
Defined in: rxdb-plugin-sync/src/sync-branches.ts:67
一条远端分支本轮被跳过的具体原因。
Remarks
三种成因互斥——处理顺序保证每条被跳过的分支只会落进其中一种:
invalid-id:分支自己的 id 落不进本地rxdb_branch.id(见 isUsableBranchId)。unresolved-from-change-id:分叉点变更还没拉到本地,fromChangeId翻译不出本地 id。ancestor-skipped:分支自身没有问题,但它的直接父本轮已经被跳过(不管父是因为 哪一种成因被跳的)。ancestorId记的是那个直接父的 id,不是链路最顶端的根因—— 要追根因,沿skipReasons[ancestorId]递归上溯,直到查到的原因不再是ancestor-skipped为止。