跳到主要内容

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​

ParameterTypeDescription
commandstring命令名
argsRecord<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​

ParameterTypeDescription
eventstring事件名
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​

ParameterTypeDescription
errorunknownlisten 注册失败的原因,或某条推送解码 / 分发失败的原因

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 会忽略本字段,填上也无害。