QueryTask<T, RT>
Defined in: packages/rxdb/src/repository/QueryTask.ts:76
查询任务实现
封装查询任务的创建和生命周期管理
- 管理任务的刷新和销毁信号
- 处理观察者的订阅和取消订阅
- 维护实体类型依赖关系
- 提供任务的首次运行和清理机制
Type Parameters
| Type Parameter | Default type |
|---|---|
T extends EntityType | - |
RT | unknown |
Constructors
Constructor
new QueryTask<T, RT>(opt): QueryTask<T, RT>;
Defined in: packages/rxdb/src/repository/QueryTask.ts:195
Parameters
| Parameter | Type |
|---|---|
opt | QueryTaskOptions<T, RT> |
Returns
QueryTask<T, RT>
Properties
cacheKey
readonly cacheKey: string;
Defined in: packages/rxdb/src/repository/QueryTask.ts:110
depEntityTypeMap
readonly depEntityTypeMap: Map<T, number>;
Defined in: packages/rxdb/src/repository/QueryTask.ts:113
destroy$
readonly destroy$: Observable<void>;
Defined in: packages/rxdb/src/repository/QueryTask.ts:125
查询销毁流 当查询任务被销毁时触发
entityType
readonly entityType: T;
Defined in: packages/rxdb/src/repository/QueryTask.ts:111
getFingerprint()
getFingerprint: (result) => Fingerprint[];
Defined in: packages/rxdb/src/repository/QueryTask.ts:187
结果指纹计算方法
Parameters
| Parameter | Type |
|---|---|
result | RT |
Returns
Fingerprint[]
observerCount
observerCount: number = 0;
Defined in: packages/rxdb/src/repository/QueryTask.ts:172
观察者数量 记录当前有多少个订阅者正在监听此查询结果
observers
readonly observers: Set<Observer<RT>>;
Defined in: packages/rxdb/src/repository/QueryTask.ts:106
观察者集合 存储所有订阅此查询结果的观察者
options
readonly options:
| EntityStaticType<T, "idType">
| FindOneOptions<T, RuleGroup<InstanceType<T>>, string>
| FindOneOrFailOptions<T, RuleGroup<InstanceType<T>>, string>
| FindOptions<T, RuleGroup<InstanceType<T>>, string>
| FindAllOptions<T, RuleGroup<InstanceType<T>>, string>
| FindByCursorOptions<T, RuleGroup<InstanceType<T>>, string>
| CountOptions<T, RuleGroup<InstanceType<T>>>
| FindTreeOptions<T, RuleGroup<InstanceType<T>>>;
Defined in: packages/rxdb/src/repository/QueryTask.ts:166
查询选项
refresh$
readonly refresh$: Observable<number>;
Defined in: packages/rxdb/src/repository/QueryTask.ts:119
刷新触发流 每次刷新时发送刷新次数,用于触发查询重新执行
refreshCount
refreshCount: number = 0;
Defined in: packages/rxdb/src/repository/QueryTask.ts:177
刷新次数 记录查询被刷新执行的总次数
relationEntityTypes
readonly relationEntityTypes: Set<T>;
Defined in: packages/rxdb/src/repository/QueryTask.ts:131
关联实体类型集合 存储查询中涉及到的所有关联实体类型
result?
optional result: RT;
Defined in: packages/rxdb/src/repository/QueryTask.ts:182
查询结果 缓存的最新查询结果数据
result$
result$: Observable<RT>;
Defined in: packages/rxdb/src/repository/QueryTask.ts:193
查询结果流 通过 Observable 发送查询结果的响应式流
resultEntityIds
readonly resultEntityIds: Set<EntityStaticType<T, "idType">>;
Defined in: packages/rxdb/src/repository/QueryTask.ts:136
查询的实体 ID 集合
resultEntitySet
readonly resultEntitySet: Set<InstanceType<T>>;
Defined in: packages/rxdb/src/repository/QueryTask.ts:142
查询的实体集合 存储查询结果中包含的所有实体实例
rxdb
readonly rxdb: RxDB;
Defined in: packages/rxdb/src/repository/QueryTask.ts:112
serialize()
readonly serialize: (data) => InstanceType<T>;
Defined in: packages/rxdb/src/repository/QueryTask.ts:109
Parameters
| Parameter | Type |
|---|---|
data | RxDBEntityLocalEventData<T> |
Returns
InstanceType<T>
type
readonly type:
| "get"
| "findOne"
| "findOneOrFail"
| "find"
| "findAll"
| "findByCursor"
| "count"
| "findDescendants"
| "findAncestors"
| "countDescendants"
| "countAncestors"
| "findNeighbors"
| "countNeighbors"
| "findPaths";
Defined in: packages/rxdb/src/repository/QueryTask.ts:147
查询类型
Methods
clean()
clean(): void;
Defined in: packages/rxdb/src/repository/QueryTask.ts:212
清理任务资源
Returns
void
error()
error(err): void;
Defined in: packages/rxdb/src/repository/QueryTask.ts:309
发送错误给所有观察者
Parameters
| Parameter | Type |
|---|---|
err | unknown |
Returns
void
next()
next(result, autoCache?): void;
Defined in: packages/rxdb/src/repository/QueryTask.ts:270
发送结果给所有观察者
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
result | RT | undefined | 查询结果 |
autoCache | boolean | true | 是否自动缓存结果实体 |
Returns
void
refresh()
refresh(): void;
Defined in: packages/rxdb/src/repository/QueryTask.ts:316
手动刷新查询
Returns
void
run()
run(): void;
Defined in: packages/rxdb/src/repository/QueryTask.ts:229
首次运行查询任务
Returns
void