跳到主要内容

SqliteClient

Defined in: packages/rxdb-adapter-sqlite-wasm/src/SqliteClient.ts:50

类型安全的同步事件调度器。

派发语义与 DOM EventTarget 对齐:

  • dispatchEvent 对监听器集合取快照后再遍历。派发过程中新增的监听器 不会收到本次事件,要等下一次派发;派发过程中移除的监听器仍会被本次调用到。
  • 监听器抛出的异常不被吞掉,直接向调用方冒泡,后续监听器不再执行。
  • 只有 addEventListener 会为事件名建立集合;集合被删空后立即回收该事件名, 避免事件名无界时 Map 持续增长。

Extends​

Constructors​

Constructor​

new SqliteClient(): SqliteClient;

Returns​

SqliteClient

Inherited from​

EventDispatcher.constructor

Methods​

addEventListener()​

addEventListener<T>(type, listener): void;

Defined in: packages/utils/dist/tools/event.d.ts:32

注册监听器。同一 listener 重复注册只保留一份(集合语义)。

Type Parameters​

Type Parameter
T extends keyof SqliteClientEvents

Parameters​

ParameterTypeDescription
typeT事件名
listenerEventListener<SqliteClientEvents[T]>监听器

Returns​

void

Inherited from​

EventDispatcher.addEventListener


beginSystemMigrationTransactionSql()​

beginSystemMigrationTransactionSql(): string;

Defined in: packages/rxdb-adapter-sqlite-wasm/src/SqliteClient.ts:144

Returns​

string


beginTransactionSql()​

beginTransactionSql(): string;

Defined in: packages/rxdb-adapter-sqlite-wasm/src/SqliteClient.ts:140

Returns​

string


describeBlankDatabase()​

describeBlankDatabase(): Promise<SqliteBlankDatabase>;

Defined in: packages/rxdb-adapter-sqlite-wasm/src/SqliteClient.ts:128

在同一个模块上开一条临时 :memory: 连接,描述引擎新建空库本来的样子。

Returns​

Promise<SqliteBlankDatabase>

空库的对象列表与描述

Throws​

Error 客户端未初始化


disconnect()​

disconnect(): Promise<void>;

Defined in: packages/rxdb-adapter-sqlite-wasm/src/SqliteClient.ts:157

断开数据库连接

幂等:重复调用只关闭一次连接;未初始化时是安全空操作。 init 进行中调用会先等待其结束,避免漏关刚打开的连接。

排空执行队列后同步派发最后一批已提交变更。 监听器异常会被记录,但不会阻断连接关闭。

Returns​

Promise<void>


dispatchEvent()​

dispatchEvent<T>(type, data): void;

Defined in: packages/utils/dist/tools/event.d.ts:60

同步派发事件。

遍历的是快照而非实时集合:监听器在处理过程中 addEventListener 不会自喂 本轮迭代(否则单次同步派发可被第三方监听器无限延长,UTL-011)。

Type Parameters​

Type Parameter
T extends keyof SqliteClientEvents

Parameters​

ParameterTypeDescription
typeT事件名
dataSqliteClientEvents[T]事件数据

Returns​

void

Throws​

监听器抛出的任意异常,原样向上冒泡;其后的监听器不再执行

Inherited from​

EventDispatcher.dispatchEvent


execute()​

execute(sql, bindings?): Promise<SqliteSuccessResult>;

Defined in: packages/rxdb-adapter-sqlite-wasm/src/SqliteClient.ts:182

执行 SQL 语句

所有查询自动排队,保证串行执行避免并发冲突

Parameters​

ParameterType
sqlstring
bindings?SQLiteCompatibleType[]

Returns​

Promise<SqliteSuccessResult>

Throws​

客户端未初始化或已断开


hasEventListener()​

hasEventListener<T>(type, listener): boolean;

Defined in: packages/utils/dist/tools/event.d.ts:40

查询监听器是否已注册。不会为未知事件名建立集合。

Type Parameters​

Type Parameter
T extends keyof SqliteClientEvents

Parameters​

ParameterTypeDescription
typeT事件名
listenerEventListener<SqliteClientEvents[T]>监听器

Returns​

boolean

是否已注册

Inherited from​

EventDispatcher.hasEventListener


init()​

init(dbName, options): Promise<void>;

Defined in: packages/rxdb-adapter-sqlite-wasm/src/SqliteClient.ts:74

初始化数据库

Parameters​

ParameterTypeDescription
dbNamestring数据库名称(不含 .sqlite 扩展名)
optionsLoadModuleOptions加载选项

Returns​

Promise<void>

Throws​

disconnect 进行中的客户端不可初始化


removeAllEventListeners()​

removeAllEventListeners(): void;

Defined in: packages/utils/dist/tools/event.d.ts:62

清空所有事件名下的全部监听器。

Returns​

void

Inherited from​

EventDispatcher.removeAllEventListeners


removeEventListener()​

removeEventListener<T>(type, listener): void;

Defined in: packages/utils/dist/tools/event.d.ts:49

移除监听器。未知事件名或未注册的监听器都是无操作,且不会建立空集合。

若在 dispatchEvent 过程中移除,被移除者仍会收到本次事件(快照语义)。

Type Parameters​

Type Parameter
T extends keyof SqliteClientEvents

Parameters​

ParameterTypeDescription
typeT事件名
listenerEventListener<SqliteClientEvents[T]>监听器

Returns​

void

Inherited from​

EventDispatcher.removeEventListener


setChangeEventsMuted()​

setChangeEventsMuted(muted): void;

Defined in: packages/rxdb-adapter-sqlite-wasm/src/SqliteClient.ts:118

暂停 / 恢复变更事件采集。

Parameters​

ParameterTypeDescription
mutedbooleantrue 时 update hook 直接忽略写入,不入批也不派发

Returns​

void


version()​

version(): Promise<string>;

Defined in: packages/rxdb-adapter-sqlite-wasm/src/SqliteClient.ts:108

获取 SQLite 版本号

Returns​

Promise<string>