跳到主要内容

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 为止。