SqliteClient
Defined in: packages/rxdb-adapter-sqlite-wasm/src/SqliteClient.ts:50
类型安全的同步事件调度器。
派发语义与 DOM EventTarget 对齐:
dispatchEvent对监听器集合取快照后再遍历。派发过程中新增的监听器 不会收到本次事件,要等下一次派发;派发过程中移除的监听器仍会被本次调用到。- 监听器抛出的异常不被吞掉,直接向调用方冒泡,后续监听器不再执行。
- 只有
addEventListener会为事件名建立集合;集合被删空后立即回收该事件名, 避免事件名无界时 Map 持续增长。
Extends
EventDispatcher<SqliteClientEvents>
Constructors
Constructor
new SqliteClient(): SqliteClient;
Returns
SqliteClient
Inherited from
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
| Parameter | Type | Description |
|---|---|---|
type | T | 事件名 |
listener | EventListener<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
| Parameter | Type | Description |
|---|---|---|
type | T | 事件名 |
data | SqliteClientEvents[T] | 事件数据 |
Returns
void
Throws
监听器抛出的任意异常,原样向上冒泡;其后的监听器不再执行
Inherited from
execute()
execute(sql, bindings?): Promise<SqliteSuccessResult>;
Defined in: packages/rxdb-adapter-sqlite-wasm/src/SqliteClient.ts:182
执行 SQL 语句
所有查询自动排队,保证串行执行避免并发冲突
Parameters
| Parameter | Type |
|---|---|
sql | string |
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
| Parameter | Type | Description |
|---|---|---|
type | T | 事件名 |
listener | EventListener<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
| Parameter | Type | Description |
|---|---|---|
dbName | string | 数据库名称(不含 .sqlite 扩展名) |
options | LoadModuleOptions | 加载选项 |
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
| Parameter | Type | Description |
|---|---|---|
type | T | 事件名 |
listener | EventListener<SqliteClientEvents[T]> | 监听器 |
Returns
void
Inherited from
EventDispatcher.removeEventListener
setChangeEventsMuted()
setChangeEventsMuted(muted): void;
Defined in: packages/rxdb-adapter-sqlite-wasm/src/SqliteClient.ts:118
暂停 / 恢复变更事件采集。
Parameters
| Parameter | Type | Description |
|---|---|---|
muted | boolean | true 时 update hook 直接忽略写入,不入批也不派发 |
Returns
void
version()
version(): Promise<string>;
Defined in: packages/rxdb-adapter-sqlite-wasm/src/SqliteClient.ts:108
获取 SQLite 版本号
Returns
Promise<string>