跳到主要内容

wrapWithComlink()

function wrapWithComlink<T>(directClient, options): T | Remote<T>;

Defined in: packages/rxdb-adapter-sqlite-core/src/create_sqlite_client.ts:129

提供 Worker/SharedWorker 选项时使用 Comlink 包装客户端,否则返回直接客户端。

Type Parameters​

Type Parameter
T extends SqliteClientLike

Parameters​

ParameterTypeDescription
directClientT主线程客户端实例,未配置 transport 时原样返回
optionsCreateSqliteClientOptionstransport 配置

Returns​

T | Remote<T>

主线程客户端或其 Comlink 远端代理

Remarks​

返回类型是联合而非裸 T:Comlink 给回的是 Remote, 它把每个方法的返回值 Promise 化,并且不带 T 的私有字段与同步返回签名。 早先用 as unknown as T 把远端代理断言成本地客户端类型, 于是 beginTransactionSql(): string 这类同步签名在 worker 模式下是假的 —— 调用方按类型不 await,拿到的是 Promise 而不是 SQL 文本。 调用方应把结果当作 SqliteClientLike(其签名已按「远端会 Promise 化」放宽), 而不是具体的客户端实现类。