跳到主要内容

QueryTask<T, RT>

Defined in: packages/rxdb/src/repository/QueryTask.ts:76

查询任务实现

封装查询任务的创建和生命周期管理

  • 管理任务的刷新和销毁信号
  • 处理观察者的订阅和取消订阅
  • 维护实体类型依赖关系
  • 提供任务的首次运行和清理机制

Type Parameters

Type ParameterDefault type
T extends EntityType-
RTunknown

Constructors

Constructor

new QueryTask<T, RT>(opt): QueryTask<T, RT>;

Defined in: packages/rxdb/src/repository/QueryTask.ts:195

Parameters

ParameterType
optQueryTaskOptions<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

ParameterType
resultRT

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

ParameterType
dataRxDBEntityLocalEventData<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

ParameterType
errunknown

Returns

void


next()

next(result, autoCache?): void;

Defined in: packages/rxdb/src/repository/QueryTask.ts:270

发送结果给所有观察者

Parameters

ParameterTypeDefault valueDescription
resultRTundefined查询结果
autoCachebooleantrue是否自动缓存结果实体

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