跳到主要内容

gateRawWrite()

function gateRawWrite<T>(
sql,
context,
execute
): Promise<T>;

Defined in: packages/rxdb/src/capture/raw-write-gate.ts:79

判定一次 raw 写,放行时才执行语句

Type Parameters​

Type ParameterDescription
T语句执行体的返回类型;门禁原样透传,不做任何包装

Parameters​

ParameterTypeDescription
sqlstring待判定的语句原文
contextRawWriteContext取自 RxDBAdapterLocalBase.workingTreeRawWriteContext
execute() => T | Promise<T>还没被调用的语句执行体

Returns​

Promise<T>

execute() 的返回值本身

Throws​

已启用提交能力且判定落在拒绝上时抛出;此时 execute 一次都不会被调用

Remarks​

未启用时同步走到 execute(),不多绕任何一步:FR-046 要求没启用提交能力的库与没有这个 版本时逐字节一致,而「绕一层再放行」在事务里是可观察的。

Example​

override rawQuery<T>(sql: string): Promise<T> {
return gateRawWrite(sql, this.workingTreeRawWriteContext, () => this.#exec<T>(sql));
}