跳到主要内容

pendingQueryCacheWriteIds()

function pendingQueryCacheWriteIds(
rxdb,
namespace,
entity
): Promise<ReadonlySet<string>>;

Defined in: rxdb-plugin-sync/src/query-cache-outbox.ts:452

取出某个 QueryCache 仓库当前被出站队列占着的实体 id。

Parameters​

ParameterTypeDescription
rxdbRxDBRxDB 实例
namespacestring命名空间
entitystring实体名

Returns​

Promise<ReadonlySet<string>>

队列里还没推回远端的那些实体 id;队列为空时是空集

Remarks​

取行条件与 flushQueryCacheOutbox 逐字同源(同分支、remoteId = null、 revertChangeId = null、水位线之后),因为「谁归队列管」和「谁会被重放」必须是 同一个集合 —— 两边各写一份过滤条件,漂移的那一刻就是数据被误删的那一刻。

不看 RxDBSync.enabled:仓库关掉同步时队列永远不会 flush,那些行于是永远留在本地。 它们仍然是只有本地有的用户数据,按「远端没返回 = 孤儿」删掉就再也找不回来了。

没有 RxDBSync 记录时按「没有水位线」读全量,不新建记录:这是一次纯读, 给一个还没同步过的仓库建记录会凭空多出一条水位线为 0 的同步状态。