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
| Parameter | Type | Description |
|---|---|---|
directClient | T | 主线程客户端实例,未配置 transport 时原样返回 |
options | CreateSqliteClientOptions | transport 配置 |
Returns
T | Remote<T>
主线程客户端或其 Comlink 远端代理
Remarks
返回类型是联合而非裸 T:Comlink 给回的是 Remote,
它把每个方法的返回值 Promise 化,并且不带 T 的私有字段与同步返回签名。
早先用 as unknown as T 把远端代理断言成本地客户端类型,
于是 beginTransactionSql(): string 这类同步签名在 worker 模式下是假的
—— 调用方按类型不 await,拿到的是 Promise 而不是 SQL 文本。
调用方应把结果当作 SqliteClientLike(其签名已按「远端会 Promise 化」放宽),
而不是具体的客户端实现类。