跳到主要内容

applyRawWriteJudgment()

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

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/raw-write-judgment.ts:708

判定并在放行时执行语句;捕获运行时 gateRawWrite() 的实现体

Type Parameters​

Type ParameterDescription
T执行器的返回类型

Parameters​

ParameterTypeDescription
sqlstring原始语句
contextRawWriteJudgmentContext判定上下文
execute() => T | Promise<T>真正下发语句的执行器

Returns​

Promise<T>

执行器的返回值原样透传

Throws​

WorkingTreeWriteRejectedError 落第 3 步时抛出,执行器一次都不会被调用

Remarks​

拒绝发生在语句下发之前,业务表零变化——不是写完再回滚。raw 通道上根本没有事务可回滚, 而那正是 raw 通道存在的原因。

名字不叫 gateRawWrite:那个名字归核心的接缝函数——适配器调的是它,六处调用点的 import 也写的是它。两个同名函数一个在核心一个在插件,改错一处不会有编译错误。