gateRawWrite()
function gateRawWrite<T>(
sql,
context,
execute
): Promise<T>;
Defined in: packages/rxdb/src/capture/raw-write-gate.ts:79
判定一次 raw 写,放行时才执行语句
Type Parameters
| Type Parameter | Description |
|---|---|
T | 语句执行体的返回类型;门禁原样透传,不做任何包装 |
Parameters
| Parameter | Type | Description |
|---|---|---|
sql | string | 待判定的语句原文 |
context | RawWriteContext | 取自 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));
}