跳到主要内容

QueryCacheSession<T>

Defined in: packages/rxdb/src/repository/query-cache-engine.interface.ts:58

一个 QueryCache 实体一份的引擎会话。

Remarks​

生命周期与持有它的 Repository 等长,「刚同步过」的记忆表归它持有 —— 主仓储 随适配器流每次发射重建,记忆放在主仓储身上等于活不过一次 find。

Type Parameters​

Type ParameterDescription
T extends EntityType实体类型

Methods​

clear()​

clear(): void;

Defined in: packages/rxdb/src/repository/query-cache-engine.interface.ts:83

清空记忆。

Returns​

void

Remarks​

两个调用点:远端失效上报(须同步清,否则随后的重跑会命中陈旧记忆)与 Repository.destroy()(记忆表每条都挂着 setTimeout,不清会把仓储连同闭包 钉在事件循环上直到窗口自己走完)。


createPrimary()​

createPrimary(localAdapter, remoteAdapter): QueryCachePrimary<T>;

Defined in: packages/rxdb/src/repository/query-cache-engine.interface.ts:73

建一个主仓储。

Parameters​

ParameterTypeDescription
localAdapterobject本次发射的本地适配器
remoteAdapterobject本次发射的远端适配器

Returns​

QueryCachePrimary<T>

Remarks​

适配器流每次发射调一次。「实例换了就清记忆、没换就沿用」(US-020 AC#22)的对表 语义在实现侧完成 —— 核心这边只负责按流重建,不知道记忆的存在。

形参取 object 而不是两个 QueryCache 适配器契约:能力校验(五个 duck 齐不齐) 是实现的责任,RxDBQueryCacheCapabilityError 要在首次真正用到它的调用上抛, 而不是在核心的类型签名上把不合格的适配器提前挡掉。