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 Parameter | Description |
|---|---|
T | 执行器的返回类型 |
Parameters
| Parameter | Type | Description |
|---|---|---|
sql | string | 原始语句 |
context | RawWriteJudgmentContext | 判定上下文 |
execute | () => T | Promise<T> | 真正下发语句的执行器 |
Returns
Promise<T>
执行器的返回值原样透传
Throws
WorkingTreeWriteRejectedError 落第 3 步时抛出,执行器一次都不会被调用
Remarks
拒绝发生在语句下发之前,业务表零变化——不是写完再回滚。raw 通道上根本没有事务可回滚, 而那正是 raw 通道存在的原因。
名字不叫 gateRawWrite:那个名字归核心的接缝函数——适配器调的是它,六处调用点的 import
也写的是它。两个同名函数一个在核心一个在插件,改错一处不会有编译错误。