TauriHostTransportOptions
Defined in: packages/rxdb-adapter-tauri/src/tauri-host-transport.ts:45
createTauriHostTransport 的依赖注入点。
Properties
invoke
readonly invoke: (command, args) => Promise<unknown>;
Defined in: packages/rxdb-adapter-tauri/src/tauri-host-transport.ts:53
Tauri 的命令调用函数,通常是 @tauri-apps/api/core 的 invoke。
Parameters
| Parameter | Type | Description |
|---|---|---|
command | string | 命令名 |
args | Record<string, unknown> | 命令参数 |
Returns
Promise<unknown>
命令返回值(JSON 形状)
listen
readonly listen: (event, handler, options?) => Promise<() => void>;
Defined in: packages/rxdb-adapter-tauri/src/tauri-host-transport.ts:62
Tauri 的事件订阅函数,通常是 @tauri-apps/api/event 的 listen。
Parameters
| Parameter | Type | Description |
|---|---|---|
event | string | 事件名 |
handler | (event) => void | 事件回调 |
options? | { target?: string; } | 订阅选项;本传输层只用 target,见 TauriHostTransportOptions.target |
options.target? | string | - |
Returns
Promise<() => void>
解除订阅的函数
onListenError?
readonly optional onListenError?: (error) => void;
Defined in: packages/rxdb-adapter-tauri/src/tauri-host-transport.ts:93
变更事件通道出问题时的回调,覆盖注册失败与送达失败两种。
Parameters
| Parameter | Type | Description |
|---|---|---|
error | unknown | listen 注册失败的原因,或某条推送解码 / 分发失败的原因 |
Returns
void
Remarks
省略时错误会被抛进全局错误处理器。不能悄悄吞掉:变更事件不通意味着 响应式查询永远不刷新,在 UI 上表现为「数据没变」——所有故障形态里最难查的一种。
实现不应抛出:它是从 Tauri 的事件回调里同步调用的,抛出去无人接管。
target
readonly target: string;
Defined in: packages/rxdb-adapter-tauri/src/tauri-host-transport.ts:81
本 WebView 所在窗口的 label,通常是 getCurrentWebviewWindow().label。
Remarks
这是定向投递的另一半,不是可选的调优项。 Rust 侧用 emit_to(owner) 只把变更事件
发给开出该会话的窗口,但 tauri 的 match_any_or_filter 在监听者 target 为 Any 时
无条件匹配任何 emit_to——而 @tauri-apps/api 的 listen() 默认正是 { kind: 'Any' }。
不带 target 注册,任何能调用 listen 的 webview(只需 core:event:allow-listen)
都会收到所有窗口的 sessionId、库名、表名与 rowIds。
故意必填而不是省略时退回全局订阅:那种默认是「未配置即全放行」,
而这正是本仓库不接受的兜底形态。注入 getCurrentWebviewWindow().listen 的调用方
已经自带 { kind: 'Webview', label },那份 listen 会忽略本字段,填上也无害。