跳到主要内容

diffMetadata()

function diffMetadata(remoteMetadata, localMetadata): DiffResult;

Defined in: packages/rxdb/src/repository/diff-metadata.ts:66

比较远程元数据与本地元数据,确定同步动作

两侧 updatedAt 都解析成时间点后比较,不按字符串字典序。 时间复杂度:O(n),n = max(remote.length, local.size)

Parameters​

ParameterTypeDescription
remoteMetadataQueryCacheEntityMetadata[]来自远程 adapter 的元数据(id + updatedAt,任何 Date.parse 认得的时间串)
localMetadataMap<string, string>来自本地 adapter 的 Map<id, updatedAt>

Returns​

DiffResult

包含分类 ID 的 DiffResult

Throws​

TypeError 任一侧的 updatedAt 无法解析成时间点时抛出。

Example​

const diff = diffMetadata(
[{ id: '1', updatedAt: '2024-01-02T00:00:00Z' }],
new Map([['1', '2024-01-01T00:00:00Z']])
);
// diff.staleIds = ['1'] - remote is newer

Remarks​

从前这里按字典序比 ISO 字符串,见 isRemoteNewer 中记录的失效场景。