diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md b/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md index 58cf342b9aec310da4349226eb17382f533e47f3..51e13dd2a060a8bf35716d316e883e848084ce0e 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md +++ b/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md @@ -15,7 +15,7 @@ import distributedData from '@ohos.data.distributedData'; ## distributedData.createKVManager -createKVManager\(config: KVManagerConfig, callback: AsyncCallback\): void +createKVManager(config: KVManagerConfig, callback: AsyncCallback<KVManager>): void 创建一个KVManager对象实例,用于管理数据库对象,并通过callback方式返回,此方法为异步方法。 @@ -62,7 +62,7 @@ createKVManager\(config: KVManagerConfig, callback: AsyncCallback\): bundleName : 'com.example.datamanagertest', userInfo : { userId : '0', - userType : SAME_USER_ID + userType : distributedData.UserType.SAME_USER_ID } } distributedData.createKVManager(kvManagerConfig, function (err, manager) { @@ -81,7 +81,7 @@ createKVManager\(config: KVManagerConfig, callback: AsyncCallback\): ## distributedData.createKVManager -createKVManager\(config: KVManagerConfig\): Promise +createKVManager(config: KVManagerConfig): Promise<KVManager> 创建一个KVManager对象实例,用于管理数据库对象,并通过Promise方式返回,此方法为异步方法。 @@ -136,7 +136,7 @@ createKVManager\(config: KVManagerConfig\): Promise bundleName : 'com.example.datamanagertest', userInfo : { userId : '0', - userType : SAME_USER_ID + userType : distributedData.UserType.SAME_USER_ID } } distributedData.createKVManager(kvManagerConfig).then((manager) => { @@ -252,7 +252,7 @@ createKVManager\(config: KVManagerConfig\): Promise ### getKVStore -getKVStore\(storeId: string, options: Options, callback: AsyncCallback\): void +getKVStore(storeId: string, options: Options, callback: AsyncCallback<T>): void 通过指定Options和storeId,创建并获取KVStore数据库,并通过callback方式返回,此方法为异步方法。 @@ -304,14 +304,15 @@ getKVStore\(storeId: string, options: Options, callback: Asy ``` let kvStore; + let kvManager; try { const options = { createIfMissing : true, encrypt : false, backup : false, autoSync : true, - kvStoreType : SINGLE_VERSION, - securityLevel : S2, + kvStoreType : distributedData.KVStoreType.SINGLE_VERSION, + securityLevel : distributedData.SecurityLevel.S2, }; kvManager.getKVStore('storeId', options, function (err, store) { if (err) { @@ -329,7 +330,7 @@ getKVStore\(storeId: string, options: Options, callback: Asy ### getKVStore -getKVStore\(storeId: string, options: Options\): Promise +getKVStore<T extends KVStore>(storeId: string, options: Options): Promise<T> 通过指定Options和storeId,创建并获取KVStore数据库,并通过Promise方式返回,此方法为异步方法。 @@ -389,14 +390,15 @@ getKVStore\(storeId: string, options: Options\): Promise ``` let kvStore; + let kvManager; try { const options = { createIfMissing : true, encrypt : false, backup : false, autoSync : true, - kvStoreType : SINGLE_VERSION, - securityLevel : S2, + kvStoreType : distributedData.KVStoreType.SINGLE_VERSION, + securityLevel : distributedData.SecurityLevel.S2, }; kvManager.getKVStore('storeId', options).then((store) => { console.log("getKVStore success"); @@ -409,9 +411,9 @@ getKVStore\(storeId: string, options: Options\): Promise } ``` -### closeKVStore ### +### closeKVStore8+ ### -closeKVStore\(appId: string, storeId: string, kvStore: KVStore, callback: AsyncCallback\): void; +closeKVStore(appId: string, storeId: string, kvStore: KVStore, callback: AsyncCallback<void>): void; 通过storId的值关闭指定的kvStore数据库,并通过callback方式返回,此方法为异步方法。 @@ -470,22 +472,33 @@ closeKVStore\(appId: string, storeId: string, kvStore: KVStore, callback: AsyncC - 示例: ``` + let kvStore; + let kvManager; + const options = { + createIfMissing : true, + encrypt : false, + backup : false, + autoSync : true, + kvStoreType : distributedData.KVStoreType.SINGLE_VERSION, + schema : '', + securityLevel : distributedData.SecurityLevel.S2, + } try { kvManager.getKVStore('storeId', options, async function (err, store) { console.log('getKVStore success'); kvStore = store; - kvManager.closeKVStore('appId', 'storeId', kvStore, function (err, data) { + await kvManager.closeKVStore('appId', 'storeId', kvStore, function (err, data) { console.log('closeKVStore success'); }); }); } catch (e) { - console.log('CloseKVStore e ' + e); + console.log('closeKVStore e ' + e); } ``` -### closeKVStore ### +### closeKVStore8+ ### -closeKVStore\(appId: string, storeId: string, kvStore: KVStore\): Promise; +closeKVStore(appId: string, storeId: string, kvStore: KVStore): Promise<void>; 通过kvStore的值关闭指定的kvStore数据库,并通过Promise方式返回,此方法为异步方法。 @@ -552,22 +565,38 @@ closeKVStore\(appId: string, storeId: string, kvStore: KVStore\): Promise - 示例: ``` - let KvStore; + let kvManager; + let kvStore; + const options = { + createIfMissing : true, + encrypt : false, + backup : false, + autoSync : true, + kvStoreType : distributedData.KVStoreType.SINGLE_VERSION, + schema : '', + securityLevel : distributedData.SecurityLevel.S2, + } try { - kvManager.closeKVStore('appId', 'storId', KvStore).then(() => { - console.log('CloseKVStore success'); + kvManager.getKVStore('storeId', options).then(async (store) => { + console.log('getKVStore success'); + kvStore = store; + await kvManager.closeKVStore('appId', 'storeId', kvStore).then(() => { + console.log('closeKVStore success'); + }).catch((err) => { + console.log('closeKVStore err ' + JSON.stringify(err)); + }); }).catch((err) => { - console.log('CloseKVStore err ' + JSON.stringify(err)); + console.log('CloseKVStore getKVStore err ' + JSON.stringify(err)); }); } catch (e) { - console.log("An unexpected error occurred. Error:" + e); + console.log('closeKVStore e ' + e); } ``` -### deleteKVStore ### +### deleteKVStore8+ ### -deleteKVStore(appId: string, storeId: string, callback: AsyncCallback): void; +deleteKVStore(appId: string, storeId: string, callback: AsyncCallback<void>): void; 通过storeId的值删除指定的kvStore数据库,并通过callback方式返回,此方法为异步方法。 @@ -617,23 +646,33 @@ deleteKVStore(appId: string, storeId: string, callback: AsyncCallback): vo - 示例: ``` - let KvStore; + let kvManager; + let kvStore; + const options = { + createIfMissing : true, + encrypt : false, + backup : false, + autoSync : true, + kvStoreType : distributedData.KVStoreType.SINGLE_VERSION, + schema : '', + securityLevel : distributedData.SecurityLevel.S2, + } try { - kvManager.deleteKVStore('appId', 'storeId', function (err, data) { - if (err){ + kvManager.getKVStore('store', options, async function (err, store) { + console.log('getKVStore success'); + kvStore = store; + await kvManager.deleteKVStore('appId', 'storeId', function (err, data) { console.log('deleteKVStore success'); - return; - } - console.log("deleteKVStore success"); + }); }); } catch (e) { - console.log("An unexpected error occurred. Error:" + e); + console.log('DeleteKVStore e ' + e); } ``` -### deleteKVStore ### +### deleteKVStore8+ ### -deleteKVStore\(appId: string, storeId: string\): Promise; +deleteKVStore(appId: string, storeId: string): Promise<void>; 通过storeId的值删除指定的kvStore数据库,并通过Promise方式返回,此方法为异步方法。 @@ -691,22 +730,38 @@ deleteKVStore\(appId: string, storeId: string\): Promise; - 示例: ``` - let KvStore; + let kvManager; + let kvStore; + const options = { + createIfMissing : true, + encrypt : false, + backup : false, + autoSync : true, + kvStoreType : distributedData.KVStoreType.SINGLE_VERSION, + schema : '', + securityLevel : distributedData.SecurityLevel.S2, + } try { - kvManager.deleteKVStore('appId', 'storId', KvStore).then(() => { - console.log('deleteKVStore success'); + kvManager.getKVStore('storId', options).then(async (store) => { + console.log('getKVStore success'); + kvStore = store; + await kvManager.deleteKVStore('appId', 'storeId').then(() => { + console.log('deleteKVStore success'); + }).catch((err) => { + console.log('deleteKVStore err ' + JSON.stringify(err)); + }); }).catch((err) => { - console.log('deleteKVStore err ' + JSON.stringify(err)); + console.log('getKVStore err ' + JSON.stringify(err)); }); } catch (e) { - console.log("An unexpected error occurred. Error:" + e); + console.log('deleteKVStore e ' + e); } ``` -### getAllKVStoreId ### +### getAllKVStoreId8+ ### -getAllKVStoreId(appId: string, callback: AsyncCallback): void; +getAllKVStoreId(appId: string, callback: AsyncCallback<string[]>): void; 获取所有通过getKvStore方法创建的且没有调用deleteKvStore方法删除的KvStore数据库的storeId,并通过callback方式返回,此方法为异步方法。 @@ -747,9 +802,10 @@ getAllKVStoreId(appId: string, callback: AsyncCallback): void; - 示例: ``` + let kvManager; try { kvManager.getAllKVStoreId('appId', function (err, data) { - console.log('GetAllKVStoreId getAllKVStoreId success'); + console.log('GetAllKVStoreId success'); console.log('GetAllKVStoreId size = ' + data.length); }); } catch (e) { @@ -758,9 +814,9 @@ getAllKVStoreId(appId: string, callback: AsyncCallback): void; ``` -### getAllKVStoreId ### +### getAllKVStoreId8+ ### -getAllKVStoreId\(appId: string\): Promise; +getAllKVStoreId(appId: string): Promise<string[]>; 获取所有通过getKvStore方法创建的且没有调用deleteKvStore方法删除的KvStore数据库的storeId,并通过Promise方式返回,此方法为异步方法。 @@ -809,30 +865,26 @@ getAllKVStoreId\(appId: string\): Promise; - 示例: ``` - let KvStore; + let kvManager; try { - kvManager.getKVStore('storId', options).then(async (store) => { - console.log('getKVStore success'); - kvStore = store; - kvManager.getAllKVStoreId('appId').then((data) => { - console.log('getAllKVStoreId success'); - console.log('GetAllKVStoreId size = ' + data.length); - console.log('GetAllKVStoreId data[0] = ' + data[0]); - }); + console.log('GetAllKVStoreId'); + kvManager.getAllKVStoreId('apppId').then((data) => { + console.log('getAllKVStoreId success'); + console.log('size = ' + data.length); }).catch((err) => { - console.log('getKVStore err ' + JSON.stringify(err)); + console.log('getAllKVStoreId err ' + JSON.stringify(err)); }); - } catch (e) { - console.log("An unexpected error occurred. Error:" + e); + } catch(e) { + console.log('getAllKVStoreId e ' + e); } ``` -### on ### +### on8+ ### -on\(event: 'distributedDataServiceDie', deathCallback: Callback\): void; +on(event: 'distributedDataServiceDie', deathCallback: Callback<void>): void; -订阅设备状态变更通知,并通过callback方式返回,此方法为异步方法。 +订阅服务状态变更通知,并通过callback方式返回,此方法为同步方法。 - 参数: @@ -851,7 +903,7 @@ on\(event: 'distributedDataServiceDie', deathCallback: Callback\): void;

'distributedDataServiceDie'

-

设备状态改变时触发的事件名。

+

服务状态改变时触发的事件名。

deathCallback

@@ -868,27 +920,25 @@ on\(event: 'distributedDataServiceDie', deathCallback: Callback\): void; - 示例 ``` - let KvStore; + let kvManager; try { - it('KVManagerOn', 0, function (done) { - console.log('KVManagerOn'); - const deathCallback = function () { - console.log('death callback call'); - } - kvManager.on('distributedDataServiceDie', deathCallback); - kvManager.off('distributedDataServiceDie', deathCallback); - }); + + console.log('KVManagerOn'); + const deathCallback = function () { + console.log('death callback call'); + } + kvManager.on('distributedDataServiceDie', deathCallback); } catch (e) { console.log("An unexpected error occurred. Error:" + e); } ``` -### off ### +### off8+ ### -off\(event: 'distributedDataServiceDie', deathCallback: Callback\): void; +off(event: 'distributedDataServiceDie', deathCallback?: Callback<void>): void; -取消订阅设备状态变更通知,并通过callback方式返回,此方法为异步方法。 +取消订阅服务状态变更通知,并通过callback方式返回,此方法为同步方法。 - 参数: @@ -907,14 +957,14 @@ off\(event: 'distributedDataServiceDie', deathCallback: Callback\): void;

'distributedDataServiceDie'

-

设备状态改变时触发的事件名。

+

服务状态改变时触发的事件名。

deathCallback

Callback<void>

-

+

回调函数,取消设备状态改变时获取通知。

@@ -924,18 +974,17 @@ off\(event: 'distributedDataServiceDie', deathCallback: Callback\): void; - 示例 ``` - let KvStore; + let kvManager; try { - it('KVManagerOff', 0, function (done) { - console.log('KVManagerOff'); - const deathCallback = function () { - console.log('death callback call'); - } - kvManager.off('distributedDataServiceDie', deathCallback); - }); + console.log('KVManagerOff'); + const deathCallback = function () { + console.log('death callback call'); + } + kvManager.off('distributedDataServiceDie', deathCallback); } catch (e) { console.log("An unexpected error occurred. Error:" + e); } + ``` ## Options @@ -1163,27 +1212,11 @@ KVStore常量。 -## Schema ## - -表示数据库架构,可以创建 Schema 对象,并在创建或打开数据库时将其放置在 Option 中。 - -### constructor ### +## Schema8+ ## -constructor(); - -用于创建架构实例的构造函数。 - -- 示例 - - ``` - try { - let schema = new ddm.Schema(); - schema.root = new ddm.FieldNode(); - console.log("constructor: " + str); - } catch (e) {} - ``` +表示数据库模式,可以在创建或打开数据库时创建 Schema 对象并将它们放入 Options 中。 -### toJsonString ### +### toJsonString8+ ### toJsonString():string; @@ -1209,62 +1242,24 @@ toJsonString():string; - 示例 ``` + import ddm from '@ohos.data.distributedData'; try { let schema = new ddm.Schema(); const str = schema.toJsonString(); - schema.root = new ddm.FieldNode(); - const node = schema.root; console.log("schema: " + str); - } catch (e) {} + } catch (e) { + console.log("toJsonString " + e); + } ``` -## FieldNode ## +## FieldNode8+ ## 表示 Schema 实例的节点,提供定义存储在数据库中的值的方法。 -### constructor ### - -constructor\(name: string\); - -用于创建具有指定字段的 FieldNode 实例的构造函数。 - -- 参数: - - - - - - - - - - - - -

参数名

-

类型

-

必填

-

说明

-

child

-

string

-

-

指定字段。

-
- -- 示例 - - ``` - try { - let node = new ddm.FieldNode("name"); - console.log("constructor: " + str); - } catch (e) {} - ``` - +### appendChild8+ ### -### appendChild ### - -appendChild\(child: FieldNode\): boolean; +appendChild(child: FieldNode): boolean; 向这个 FieldNode 添加一个子节点。 @@ -1311,6 +1306,7 @@ appendChild\(child: FieldNode\): boolean; - 示例 ``` + import ddm from '@ohos.data.distributedData'; try { let node = new ddm.FieldNode("root"); let child1 = new ddm.FieldNode("child1"); @@ -1330,9 +1326,9 @@ appendChild\(child: FieldNode\): boolean; ``` -### toJson ### +### toJson8+ ### -toJson(\): string; +toJson(): string; 获取字段名称。 @@ -1356,23 +1352,25 @@ toJson(\): string; - 示例 ``` + import ddm from '@ohos.data.distributedData'; try { let node = new ddm.FieldNode("root"); let child = new ddm.FieldNode("child"); node.appendChild(child); + console.log("appendNode " + node.toJson()); } catch (e) { console.log("ToJson " + e); } ``` -## KvStoreResultSet ## +## KvStoreResultSet8+ ## -提供获取KvStore数据库结果集的方法,提供查询和移动数据读取位置的方法,在调用KvStoreResultSet的方法前,需要先通过DeviceKvStore 构建一个DeviceKvStore 实例。 +提供获取KvStore数据库结果集的方法,提供查询和移动数据读取位置的方法,在调用KvStoreResultSet的方法前,需要先通过KvStore 构建一个KvStore 实例。 -### getCount ### +### getCount8+ ### -getCount(\): number; +getCount(): number; 获取结果集中的行数。 @@ -1396,19 +1394,26 @@ getCount(\): number; - 示例 ``` - let KvStoreResultSet; + let kvStore; try { - count = resultSet.getCount(); - console.log("getCount " + count); + let resultSet; + kvStore.getResultSet('batch_test_string_key').then((result) => { + console.log('getResultSet success'); + resultSet = result; + }).catch((err) => { + console.log('getResultSet fail ' + err); + }); + const count = resultSet.getCount(); + console.log("GetCount " + count); } catch (e) { - console.log("GetCount001 fail " + e); + console.log("GetCount fail " + e); } ``` -### getPosition ### +### getPosition8+ ### -getPosition(\): number; +getPosition(): number; 获取结果集中当前的读取位置。 @@ -1432,19 +1437,26 @@ getPosition(\): number; - 示例 ``` - let KvStoreResultSet; + let kvStore; try { + let resultSet; + kvStore.getResultSet('batch_test_string_key').then((result) => { + console.log('getResultSet success'); + resultSet = result; + }).catch((err) => { + console.log('getResultSet fail ' + err); + }); const positon = resultSet.getPosition(); console.log("getPosition " + positon); } catch (e) { - console.log("GetPosition001 fail " + e); + console.log("GetPosition fail " + e); } ``` -### moveToFirst ### +### moveToFirst8+ ### -moveToFirst(\): boolean; +moveToFirst(): boolean; 将读取位置移动到第一行。 @@ -1468,8 +1480,15 @@ moveToFirst(\): boolean; - 示例 ``` - let KvStoreResultSet; + let kvStore; try { + let resultSet; + kvStore.getResultSet('batch_test_string_key').then((result) => { + console.log('getResultSet success'); + resultSet = result; + }).catch((err) => { + console.log('getResultSet fail ' + err); + }); const moved = resultSet.moveToFirst(); console.log("moveToFirst " + moved); } catch (e) { @@ -1478,9 +1497,9 @@ moveToFirst(\): boolean; ``` -### moveToLast ### +### moveToLast8+ ### -moveToLast(\): boolean; +moveToLast(): boolean; 将读取位置移动到最后一行。 @@ -1504,8 +1523,15 @@ moveToLast(\): boolean; - 示例 ``` - let KvStoreResultSet; + let kvStore; try { + let resultSet; + kvStore.getResultSet('batch_test_string_key').then((result) => { + console.log('getResultSet success'); + resultSet = result; + }).catch((err) => { + console.log('getResultSet fail ' + err); + }); const moved = resultSet.moveToLast(); console.log("moveToLast " + moved); } catch (e) { @@ -1514,9 +1540,9 @@ moveToLast(\): boolean; ``` -### moveToNext ### +### moveToNext8+ ### -moveToNext(\): boolean; +moveToNext(): boolean; 将读取位置移动到下一行。 @@ -1540,8 +1566,15 @@ moveToNext(\): boolean; - 示例 ``` - let KvStoreResultSet; + let kvStore; try { + let resultSet; + kvStore.getResultSet('batch_test_string_key').then((result) => { + console.log('getResultSet success'); + resultSet = result; + }).catch((err) => { + console.log('getResultSet fail ' + err); + }); const moved = resultSet.moveToNext(); console.log("moveToNext " + moved); } catch (e) { @@ -1550,9 +1583,9 @@ moveToNext(\): boolean; ``` -### moveToPrevious ### +### moveToPrevious8+ ### -moveToPrevious(\): boolean; +moveToPrevious(): boolean; 将读取位置移动到上一行。 @@ -1576,8 +1609,15 @@ moveToPrevious(\): boolean; - 示例 ``` - let KvStoreResultSet; + let kvStore; try { + let resultSet; + kvStore.getResultSet('batch_test_string_key').then((result) => { + console.log('getResultSet success'); + resultSet = result; + }).catch((err) => { + console.log('getResultSet fail ' + err); + }); const moved = resultSet.moveToPrevious(); console.log("moveToPrevious " + moved); } catch (e) { @@ -1586,9 +1626,9 @@ moveToPrevious(\): boolean; ``` -### move ### +### move8+ ### -move\(offset: number\): boolean; +move(offset: number): boolean; 将读取位置移动到当前位置的相对偏移量。 @@ -1634,8 +1674,15 @@ move\(offset: number\): boolean; - 示例 ``` - let KvStoreResultSet; + let kvStore; try { + let resultSet; + kvStore.getResultSet('batch_test_string_key').then((result) => { + console.log('getResultSet success'); + resultSet = result; + }).catch((err) => { + console.log('getResultSet fail ' + err); + }); const moved = resultSet.move(); console.log("move " + moved); } catch (e) { @@ -1644,9 +1691,9 @@ move\(offset: number\): boolean; ``` -### moveToPosition ### +### moveToPosition8+ ### -moveToPosition\(position: number\): boolean; +moveToPosition(position: number): boolean; 将读取位置从 0 移动到绝对位置。 @@ -1692,8 +1739,15 @@ moveToPosition\(position: number\): boolean; - 示例 ``` - let KvStoreResultSet; + let kvStore; try { + let resultSet; + kvStore.getResultSet('batch_test_string_key').then((result) => { + console.log('getResultSet success'); + resultSet = result; + }).catch((err) => { + console.log('getResultSet fail ' + err); + }); const moved = resultSet.moveToPosition(); console.log("moveToPosition " + moved); } catch (e) { @@ -1702,9 +1756,9 @@ moveToPosition\(position: number\): boolean; ``` -### isFirst ### +### isFirst8+ ### -isFirst(\): boolean; +isFirst(): boolean; 检查读取位置是否为第一行。 @@ -1728,8 +1782,15 @@ isFirst(\): boolean; - 示例 ``` - let KvStoreResultSet; + let kvStore; try { + let resultSet; + kvStore.getResultSet('batch_test_string_key').then((result) => { + console.log('getResultSet success'); + resultSet = result; + }).catch((err) => { + console.log('getResultSet fail ' + err); + }); const moved = resultSet.isFirst(); console.log("isFirst " + moved); } catch (e) { @@ -1738,9 +1799,9 @@ isFirst(\): boolean; ``` -### isLast ### +### isLast8+ ### -isLast(\): boolean; +isLast(): boolean; 检查读取位置是否为最后一行。 @@ -1764,8 +1825,15 @@ isLast(\): boolean; - 示例 ``` - let KvStoreResultSet; + let kvStore; try { + let resultSet; + kvStore.getResultSet('batch_test_string_key').then((result) => { + console.log('getResultSet success'); + resultSet = result; + }).catch((err) => { + console.log('getResultSet fail ' + err); + }); const moved = resultSet.isLast(); console.log("isLast " + moved); } catch (e) { @@ -1774,9 +1842,9 @@ isLast(\): boolean; ``` -### isBeforeFirst ### +### isBeforeFirst8+ ### -isBeforeFirst(\): boolean; +isBeforeFirst(): boolean; 检查读取位置是否在第一行之前。 @@ -1800,8 +1868,15 @@ isBeforeFirst(\): boolean; - 示例 ``` - let KvStoreResultSet; + let kvStore; try { + let resultSet; + kvStore.getResultSet('batch_test_string_key').then((result) => { + console.log('getResultSet success'); + resultSet = result; + }).catch((err) => { + console.log('getResultSet fail ' + err); + }); const moved = resultSet.isBeforeFirst(); console.log("isBeforeFirst " + moved); } catch (e) { @@ -1810,9 +1885,9 @@ isBeforeFirst(\): boolean; ``` -### isAfterLast ### +### isAfterLast8+ ### -isAfterLast(\): boolean; +isAfterLast(): boolean; 检查读取位置是否在最后一行之后。 @@ -1836,8 +1911,15 @@ isAfterLast(\): boolean; - 示例 ``` - let KvStoreResultSet; + let kvStore; try { + let resultSet; + kvStore.getResultSet('batch_test_string_key').then((result) => { + console.log('getResultSet success'); + resultSet = result; + }).catch((err) => { + console.log('getResultSet fail ' + err); + }); const moved = resultSet.isAfterLast(); console.log("isAfterLast " + moved); } catch (e) { @@ -1846,9 +1928,9 @@ isAfterLast(\): boolean; ``` -### getEntry ### +### getEntry8+ ### -getEntry(\): Entry; +getEntry(): Entry; 获取键值对 @@ -1872,39 +1954,31 @@ getEntry(\): Entry; - 示例 ``` - let KvStoreResultSet; + let kvStore; try { + let resultSet; + kvStore.getResultSet('batch_test_string_key').then((result) => { + console.log('getResultSet success'); + resultSet = result; + }).catch((err) => { + console.log('getResultSet fail ' + err); + }); const moved = resultSet.moveToNext(); const entry = resultSet.getEntry(); - console.log("getEntry " + entry); + console.log("getEntry " + JSON.stringify(entry)); } catch (e) { console.log("getEntry fail " + e); } ``` -## Query ## +## Query 8+## 使用谓词表示数据库查询,提供创建Query实例、查询数据库中的数据和添加谓词的方法。 -### constructor ### - -constructor(); - -用于创建查询实例的构造函数。 - -- 示例 - - ``` - try { - let query= new ddm.Query() - console.log("constructor: " + str); - } catch (e) {} - ``` - -### reset ### +### reset8+ ### -reset(\): Query; +reset(): Query; 公共查询重置。 @@ -1928,9 +2002,8 @@ reset(\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.equalTo("key", "value"); console.log("query is " + query.getSqlLike()); query.reset(); @@ -1942,9 +2015,9 @@ reset(\): Query; ``` -### equalTo ### +### equalTo8+ ### -equalTo\(field: string, value: number|string|boolean\): Query; +equalTo(field: string, value: number|string|boolean): Query; 构造一个Query对象来查询具有指定字段的条目,其值等于指定的值。 @@ -1999,9 +2072,8 @@ equalTo\(field: string, value: number|string|boolean\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.equalTo("field", "value"); console.log("query is " + query.getSqlLike()); query = null; @@ -2011,9 +2083,9 @@ equalTo\(field: string, value: number|string|boolean\): Query; ``` -### notEqualTo ### +### notEqualTo8+ ### -notEqualTo\(field: string, value: number|string|boolean\): Query; +notEqualTo(field: string, value: number|string|boolean): Query; 构造一个Query对象以查询具有指定字段且值不等于指定值的条目。 @@ -2068,9 +2140,8 @@ notEqualTo\(field: string, value: number|string|boolean\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.notEqualTo("field", "value"); console.log("query is " + query.getSqlLike()); query = null; @@ -2080,9 +2151,9 @@ notEqualTo\(field: string, value: number|string|boolean\): Query; ``` -### greaterThan ### +### greaterThan8+ ### -greaterThan\(field: string, value: number|string|boolean\): Query; +greaterThan(field: string, value: number|string|boolean): Query; 构造一个Query对象以查询具有大于指定值的指定字段的条目。 @@ -2137,9 +2208,8 @@ greaterThan\(field: string, value: number|string|boolean\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.greaterThan("field", "value"); console.log("query is " + query.getSqlLike()); query = null; @@ -2149,9 +2219,9 @@ greaterThan\(field: string, value: number|string|boolean\): Query; ``` -### lessThan ### +### lessThan8+ ### -lessThan\(field: string, value: number|string\): Query; +lessThan(field: string, value: number|string): Query; 构造一个Query对象以查询具有小于指定值的指定字段的条目。 @@ -2206,9 +2276,8 @@ lessThan\(field: string, value: number|string\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.lessThan("field", "value"); console.log("query is " + query.getSqlLike()); query = null; @@ -2218,9 +2287,9 @@ lessThan\(field: string, value: number|string\): Query; ``` -### greaterThanOrEqualTo ### +### greaterThanOrEqualTo8+ ### -greaterThanOrEqualTo\(field: string, value: number|string\): Query; +greaterThanOrEqualTo(field: string, value: number|string): Query; 构造一个Query对象以查询具有指定字段且值大于或等于指定值的条目。 @@ -2275,9 +2344,8 @@ greaterThanOrEqualTo\(field: string, value: number|string\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.greaterThanOrEqualTo("field", "value"); console.log("query is " + query.getSqlLike()); query = null; @@ -2287,9 +2355,9 @@ greaterThanOrEqualTo\(field: string, value: number|string\): Query; ``` -### lessThanOrEqualTo ### +### lessThanOrEqualTo8+ ### -lessThanOrEqualTo\(field: string, value: number|string\): Query; +lessThanOrEqualTo(field: string, value: number|string): Query; 构造一个Query对象以查询具有指定字段且值小于或等于指定值的条目。 @@ -2344,9 +2412,8 @@ lessThanOrEqualTo\(field: string, value: number|string\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.lessThanOrEqualTo("field", "value"); console.log("query is " + query.getSqlLike()); query = null; @@ -2356,9 +2423,9 @@ lessThanOrEqualTo\(field: string, value: number|string\): Query; ``` -### isNull ### +### isNull8+ ### -isNull\(field: string\): Query; +isNull(field: string): Query; 构造一个Query对象以查询具有值为null的指定字段的条目。 @@ -2405,9 +2472,8 @@ isNull\(field: string\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.isNull("field"); console.log("query is " + query.getSqlLike()); query = null; @@ -2417,9 +2483,9 @@ isNull\(field: string\): Query; ``` -### inNumber ### +### inNumber8+ ### -inNumber\(field: string, valueList: number[\]\): Query; +inNumber(field: string, valueList: number[]): Query; 构造一个Query对象以查询具有指定字段的条目,其值在指定的值列表中。 @@ -2474,10 +2540,9 @@ inNumber\(field: string, valueList: number[\]\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); - query.inNumber("field", "valueList"); + let query = new distributedData.Query(); + query.inNumber("field", [0, 1]); console.log("query is " + query.getSqlLike()); query = null; } catch (e) { @@ -2486,9 +2551,9 @@ inNumber\(field: string, valueList: number[\]\): Query; ``` -### inString ### +### inString8+ ### -inString\(field: string, valueList: string[\]\): Query; +inString(field: string, valueList: string[]): Query; 构造一个Query对象以查询具有指定字段的条目,其值在指定的字符串值列表中。 @@ -2543,10 +2608,9 @@ inString\(field: string, valueList: string[\]\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); - query.inString("field", "valueList"); + let query = new distributedData.Query(); + query.inString("field", ['test1', 'test2']); console.log("query is " + query.getSqlLike()); query = null; } catch (e) { @@ -2555,9 +2619,9 @@ inString\(field: string, valueList: string[\]\): Query; ``` -### notInNumber ### +### notInNumber8+ ### -notInNumber\(field: string, valueList: number[\]\): Query; +notInNumber(field: string, valueList: number[]): Query; 构造一个Query对象以查询具有指定字段的条目,该字段的值不在指定的值列表中。 @@ -2612,10 +2676,9 @@ notInNumber\(field: string, valueList: number[\]\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); - query.notInNumber("field", "valueList"); + let query = new distributedData.Query(); + query.notInNumber("field", [0, 1]); console.log("query is " + query.getSqlLike()); query = null; } catch (e) { @@ -2624,9 +2687,9 @@ notInNumber\(field: string, valueList: number[\]\): Query; ``` -### notInString ### +### notInString8+ ### -notInString\(field: string, valueList: string[\]\): Query; +notInString(field: string, valueList: string[]): Query; 构造一个Query对象以查询具有指定字段且值不在指定字符串值列表中的条目。 @@ -2681,10 +2744,9 @@ notInString\(field: string, valueList: string[\]\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); - query.notInString("field", "valueList"); + let query = new distributedData.Query(); + query.notInString("field", ['test1', 'test2']); console.log("query is " + query.getSqlLike()); query = null; } catch (e) { @@ -2693,9 +2755,9 @@ notInString\(field: string, valueList: string[\]\): Query; ``` -### like ### +### like8+ ### -like\(field: string, value: string\): Query; +like(field: string, value: string): Query; 构造一个Query对象以查询具有与指定字符串值相似的指定字段的条目。 @@ -2750,9 +2812,8 @@ like\(field: string, value: string\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.like("field", "value"); console.log("query is " + query.getSqlLike()); query = null; @@ -2762,9 +2823,9 @@ like\(field: string, value: string\): Query; ``` -### unlike ### +### unlike8+ ### -unlike\(field: string, value: string\): Query; +unlike(field: string, value: string): Query; 构造一个Query对象以查询具有与指定字符串值不相似的指定字段的条目。 @@ -2819,9 +2880,8 @@ unlike\(field: string, value: string\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.unlike("field", "value"); console.log("query is " + query.getSqlLike()); query = null; @@ -2831,9 +2891,9 @@ unlike\(field: string, value: string\): Query; ``` -### and ### +### and8+ ### -and(\): Query; +and(): Query; 构造一个带有与条件的查询对象。 @@ -2857,9 +2917,8 @@ and(\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.notEqualTo("field", "value1"); query.and(); query.notEqualTo("field", "value2"); @@ -2871,9 +2930,9 @@ and(\): Query; ``` -### or ### +### or8+ ### -or(\): Query; +or(): Query; 构造一个带有或条件的Query对象。 @@ -2897,9 +2956,8 @@ or(\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.notEqualTo("field", "value1"); query.or(); query.notEqualTo("field", "value2"); @@ -2911,9 +2969,9 @@ or(\): Query; ``` -### orderByAsc ### +### orderByAsc8+ ### -orderByAsc\(field: string\): Query; +orderByAsc(field: string): Query; 构造一个Query对象,将查询结果按升序排序。 @@ -2961,9 +3019,8 @@ orderByAsc\(field: string\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.notEqualTo("field", "value"); query.orderByAsc("field"); console.log("query is " + query.getSqlLike()); @@ -2974,9 +3031,9 @@ orderByAsc\(field: string\): Query; ``` -### orderByDesc ### +### orderByDesc8+ ### -orderByDesc\(field: string\): Query; +orderByDesc(field: string): Query; 构造一个Query对象,将查询结果按降序排序。 @@ -3023,9 +3080,8 @@ orderByDesc\(field: string\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.notEqualTo("field", "value"); query.orderByDesc("field"); console.log("query is " + query.getSqlLike()); @@ -3036,9 +3092,9 @@ orderByDesc\(field: string\): Query; ``` -### limit ### +### limit8+ ### -limit\(total: number, offset: number\): Query; +limit(total: number, offset: number): Query; 构造一个Query对象来指定结果的数量和开始位置。 @@ -3093,9 +3149,8 @@ limit\(total: number, offset: number\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.notEqualTo("field", "value"); query.limit("total", "offset"); console.log("query is " + query.getSqlLike()); @@ -3106,9 +3161,9 @@ limit\(total: number, offset: number\): Query; ``` -### isNotNull ### +### isNotNull8+ ### -isNotNull\(field: string\): Query; +isNotNull(field: string): Query; 使用不为空的指定字段创建查询条件。 @@ -3155,9 +3210,8 @@ isNotNull\(field: string\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.isNotNull("field"); console.log("query is " + query.getSqlLike()); query = null; @@ -3167,9 +3221,9 @@ isNotNull\(field: string\): Query; ``` -### beginGroup ### +### beginGroup8+ ### -beginGroup\(\): Query; +beginGroup(): Query; 创建一个带有左括号的查询条件组。 @@ -3193,9 +3247,8 @@ beginGroup\(\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.beginGroup(); query.isNotNull("field"); query.endGroup(); @@ -3207,9 +3260,9 @@ beginGroup\(\): Query; ``` -### endGroup ### +### endGroup8+ ### -endGroup\(\): Query; +endGroup(): Query; 创建一个带有右括号的查询条件组。 @@ -3233,9 +3286,8 @@ endGroup\(\): Query; - 示例 ``` - let Query; try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.beginGroup(); query.isNotNull("field"); query.endGroup(); @@ -3247,9 +3299,9 @@ endGroup\(\): Query; ``` -### prefixKey ### +### prefixKey8+ ### -prefixKey\(prefix: string\): Query; +prefixKey(prefix: string): Query; 创建具有指定键前缀的查询条件。 @@ -3297,7 +3349,7 @@ prefixKey\(prefix: string\): Query; ``` try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.prefixKey("$.name"); query.prefixKey("0"); console.log("query is " + query.getSqlLike()); @@ -3308,9 +3360,9 @@ prefixKey\(prefix: string\): Query; ``` -### setSuggestIndex ### +### setSuggestIndex8+ ### -setSuggestIndex\(index: string\): Query; +setSuggestIndex(index: string): Query; 设置一个指定的索引,将优先用于查询。 @@ -3358,7 +3410,7 @@ setSuggestIndex\(index: string\): Query; ``` try { - let query = new ddm.Query(); + let query = new distributedData.Query(); query.setSuggestIndex("$.name"); query.setSuggestIndex("0"); console.log("query is " + query.getSqlLike()); @@ -3369,55 +3421,47 @@ setSuggestIndex\(index: string\): Query; ``` -## KVStore - -KVStore数据库实例,提供增加数据、删除数据和订阅数据变更、订阅同步完成的方法。在调用KVStore的方法前,需要先通过getKVStore构建一个KVStore实例。 - -### put +### deviceId8+ ### -put\(key: string, value: Uint8Array | string | number | boolean, callback: AsyncCallback\): void +deviceId(deviceId:string):Query; -添加指定类型键值对到数据库,并通过callback方式返回,此方法为异步方法。 +添加设备ID作为key的前缀。 - 参数: - - - + @@ -3675,6 +3828,8 @@ on\(event: 'dataChange', type: SubscribeType, observer: Callback + @@ -3682,6 +3837,8 @@ on\(event: 'dataChange', type: SubscribeType, observer: Callback + @@ -3689,6 +3846,8 @@ on\(event: 'dataChange', type: SubscribeType, observer: Callback + @@ -3698,7 +3857,8 @@ on\(event: 'dataChange', type: SubscribeType, observer: Callback -on\(event: 'syncComplete', syncCallback: Callback\>\): void +on(event: 'syncComplete', syncCallback: Callback\>\) + @@ -3725,12 +3887,16 @@ on\(event: 'syncComplete', syncCallback: Callback\>\) + - + @@ -3741,16 +3907,17 @@ on\(event: 'syncComplete', syncCallback: Callback\>\) - 示例 ``` + let kvStore; kvStore.on('syncComplete', function (data) { console.log("syncComplete callback call data: " + data); }); ``` -### off ### +### off8+ ### -off\(event:'dataChange', observer: Callback\): void; +off(event:'dataChange', observer?: Callback<ChangeNotification>): void; -取消订阅数据同步完成通知,此方法为同步方法。 +取消订阅数据变更通知,此方法为同步方法。 - 参数: @@ -3759,6 +3926,8 @@ off\(event:'dataChange', observer: Callback\): void; + @@ -3767,22 +3936,38 @@ off\(event:'dataChange', observer: Callback\): void; - + +

参数名

-

类型

+ + - - - - - - - - - - + +

参数名

必填

+

类型

说明

+

必填

+

说明

key

+

deviceId

string

-

+

string

要添加数据的key,不能为空且长度不大于MAX_KEY_LENGTH

+

+

指示查询的设备 ID。

value

-

Uint8Array | string | number | boolean

-

-

要添加数据的value,支持Uint8Array、number 、 string 、boolean,

-

Uint8Array、string 的长度不大于MAX_VALUE_LENGTH

-
+ +- 返回值: + + + + - - - + - @@ -3426,13 +3470,117 @@ put\(key: string, value: Uint8Array | string | number | boolean, callback: Async - 示例 ``` - const KEY_TEST_STRING_ELEMENT = 'key_test_string'; - const VALUE_TEST_STRING_ELEMENT = 'value-test-string'; try { - kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err,data) { - if (err != undefined) { - console.log("put err: " + JSON.stringify(err)); - return; + let query = new distributedData.Query(); + query.deviceId("deviceId"); + console.log("query is " + query.getSqlLike()); + } catch (e) { + console.log("should be ok on Method Chaining : " + e); + } + ``` + + +### getSqlLike8+ ### + +getSqlLike():string; + +获取指定Query对象的查询语句。 + +- 返回值: + + +

类型

+

说明

+

callback

-

AsyncCallback<void>

-

+

Query

回调函数。

+

返回查询对象。

+ + + + + + + +

类型

+

说明

+

string

+

返回指定Query对象的查询语句。

+
+ +- 示例 + + ``` + try { + let query = new distributedData.Query(); + let sql1 = query.getSqlLike(); + console.log("GetSqlLike sql=" + sql1); + } catch (e) { + console.log("dumplicated calls should be ok : " + e); + } + ``` + + +## KVStore + +KVStore数据库实例,提供增加数据、删除数据和订阅数据变更、订阅同步完成的方法。在调用KVStore的方法前,需要先通过getKVStore构建一个KVStore实例。 + +### put + +put(key: string, value: Uint8Array | string | number | boolean, callback: AsyncCallback<void>): void + +添加指定类型键值对到数据库,并通过callback方式返回,此方法为异步方法。 + +- 参数: + + + + + + + + + + + + + + + + + + + + + + + + +

参数名

+

类型

+

必填

+

说明

+

key

+

string

+

+

要添加数据的key,不能为空且长度不大于MAX_KEY_LENGTH

+

value

+

Uint8Array | string | number | boolean

+

+

要添加数据的value,支持Uint8Array、number 、 string 、boolean,

+

Uint8Array、string 的长度不大于MAX_VALUE_LENGTH

+

callback

+

AsyncCallback<void>

+

+

回调函数。

+
+ +- 示例 + + ``` + let kvStore; + const KEY_TEST_STRING_ELEMENT = 'key_test_string'; + const VALUE_TEST_STRING_ELEMENT = 'value-test-string'; + try { + kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err,data) { + if (err != undefined) { + console.log("put err: " + JSON.stringify(err)); + return; } console.log("put success"); }); @@ -3444,7 +3592,7 @@ put\(key: string, value: Uint8Array | string | number | boolean, callback: Async ### put -put\(key: string, value: Uint8Array | string | number | boolean\): Promise +put(key: string, value: Uint8Array | string | number | boolean): Promise<void> 添加指定类型键值对到数据库,并通过Promise方式返回,此方法为异步方法。 @@ -3504,6 +3652,7 @@ put\(key: string, value: Uint8Array | string | number | boolean\): Promise -delete\(key: string, callback: AsyncCallback\): void +delete(key: string, callback: AsyncCallback<void>): void 从数据库中删除指定键值的数据,并通过callback方式返回,此方法为异步方法。 @@ -3561,6 +3710,7 @@ delete\(key: string, callback: AsyncCallback\): void - 示例 ``` + let kvStore; const KEY_TEST_STRING_ELEMENT = 'key_test_string'; const VALUE_TEST_STRING_ELEMENT = 'value-test-string'; try { @@ -3586,7 +3736,7 @@ delete\(key: string, callback: AsyncCallback\): void ### delete -delete\(key: string\): Promise +delete(key: string): Promise<void> 从数据库中删除指定键值的数据,并通过Promise方式返回,此方法为异步方法。 @@ -3635,6 +3785,7 @@ delete\(key: string\): Promise - 示例 ``` + let kvStore; const KEY_TEST_STRING_ELEMENT = 'key_test_string'; const VALUE_TEST_STRING_ELEMENT = 'value-test-string'; try { @@ -3656,7 +3807,7 @@ delete\(key: string\): Promise ### on -on\(event: 'dataChange', type: SubscribeType, observer: Callback\): void +on(event: 'dataChange', type: SubscribeType, observer: Callback<ChangeNotification>): void 订阅指定类型的数据变更通知,此方法为同步方法。 @@ -3667,6 +3818,8 @@ on\(event: 'dataChange', type: SubscribeType, observer: Callback

类型

必填

+

说明

'dataChange'

+

回调函数名称。

SubscribeType

+

表示订阅的类型。

Callback<ChangeNotification>

+

回调函数。

类型

必填

+

说明

'syncComplete'

+

回调函数名称。

syncCallback

Callback<Array<[string, number]>>

+

Callback<Array<[string, number]>

+

回调函数。

类型

必填

+

说明

'datachange'

回调函数名称。

+

回调函数名称。

observer

Callback<ChangeNotification>

+

回调函数。

-### putBatch ### +- 示例 + + ``` + let kvStore; + kvStore.on('dataChange', function (data) { + console.log("syncComplete callback call data: " + data); + }); + kvStore.off('dataChange', function (data) { + console.log("syncComplete callback call data: " + data); + }); + ``` + -putBatch\(entries: Entry[], callback: AsyncCallback\): void; +### putBatch8+ ### + +putBatch(entries: Entry[], callback: AsyncCallback<void>): void; 批量插入键值对到KvStore数据库中,并通过callback方式返回,此方法为异步方法。 @@ -3817,9 +4002,42 @@ putBatch\(entries: Entry[], callback: AsyncCallback\): void; -### putBatch ### +- 示例 -putBatch\(entries: Entry[\]\): Promise; + ``` + let kvStore; + try { + let entries = []; + for (var i = 0; i < 10; i++) { + var key = 'batch_test_string_key'; + var entry = { + key : key + i, + value : { + type : distributedData.ValueType.STRING, + value : 'batch_test_string_value' + } + } + entries.push(entry); + } + console.log('entries: ' + JSON.stringify(entries)); + kvStore.putBatch(entries, async function (err,data) { + console.log('putBatch success'); + await kvStore.getEntries('batch_test_string_key', function (err,entrys) { + console.log('getEntries success'); + console.log('entrys.length: ' + entrys.length); + console.log('entrys[0]: ' + JSON.stringify(entrys[0])); + }); + }); + }catch(e) { + console.log('PutBatch e ' + e); + } + + ``` + + +### putBatch8+ ### + +putBatch(entries: Entry[]): Promise<void>; 批量插入键值对到KvStore数据库中,并通过Promise方式返回,此方法为异步方法。 @@ -3863,9 +4081,44 @@ putBatch\(entries: Entry[\]\): Promise; -### deleteBatch ### +- 示例 + + ``` + let kvStore; + try { + let entries = []; + for (var i = 0; i < 10; i++) { + var key = 'batch_test_string_key'; + var entry = { + key : key + i, + value : { + type : distributedData.ValueType.STRING, + value : 'batch_test_string_value' + } + } + entries.push(entry); + } + console.log('entries: ' + JSON.stringify(entries)); + kvStore.putBatch(entries).then(async (err) => { + console.log('putBatch success'); + await kvStore.getEntries('batch_test_string_key').then((entrys) => { + console.log('getEntries success'); + console.log('PutBatch ' + JSON.stringify(entries)); + }).catch((err) => { + console.log('getEntries fail ' + JSON.stringify(err)); + }); + }).catch((err) => { + console.log('putBatch fail ' + JSON.stringify(err)); + }); + }catch(e) { + console.log('PutBatch e ' + e); + } + ``` + + +### deleteBatch8+ ### -deleteBatch(keys: string[], callback: AsyncCallback): void; +deleteBatch(keys: string[], callback: AsyncCallback<void>): void; 批量删除KvStore数据库中的键值对,并通过callback方式返回,此方法为异步方法。 @@ -3900,9 +4153,41 @@ deleteBatch(keys: string[], callback: AsyncCallback): void; -### deleteBatch ### +- 示例 + + ``` + let kvStore; + try { + let entries = []; + let keys = []; + for (var i = 0; i < 5; i++) { + var key = 'batch_test_string_key'; + var entry = { + key : key + i, + value : { + type : distributedData.ValueType.STRING, + value : 'batch_test_string_value' + } + } + entries.push(entry); + keys.push(key + i); + } + console.log('entries: ' + JSON.stringify(entries)); + kvStore.putBatch(entries, async function (err,data) { + console.log('putBatch success'); + await kvStore.deleteBatch(keys, async function (err,data) { + console.log('deleteBatch success'); + }); + }); + }catch(e) { + console.log('DeleteBatch e ' + e); + } + ``` + -deleteBatch\(keys: string[\]\): Promise; +### deleteBatch8+ ### + +deleteBatch(keys: string[]): Promise<void>; 批量删除键值对到KvStore数据库中,并通过Promise方式返回,此方法为异步方法。 @@ -3946,9 +4231,45 @@ deleteBatch\(keys: string[\]\): Promise; -### startTransaction ### +- 示例 -startTransaction\(callback: AsyncCallback\): void; + ``` + let kvStore; + try { + let entries = []; + let keys = []; + for (var i = 0; i < 5; i++) { + var key = 'batch_test_string_key'; + var entry = { + key : key + i, + value : { + type : distributedData.ValueType.STRING, + value : 'batch_test_string_value' + } + } + entries.push(entry); + keys.push(key + i); + } + console.log('entries: ' + JSON.stringify(entries)); + kvStore.putBatch(entries).then(async (err) => { + console.log('putBatch success'); + await kvStore.deleteBatch(keys).then((err) => { + console.log('deleteBatch success'); + }).catch((err) => { + console.log('deleteBatch fail ' + JSON.stringify(err)); + }); + }).catch((err) => { + console.log('putBatch fail ' + JSON.stringify(err)); + }); + }catch(e) { + console.log('DeleteBatch e ' + e); + } + ``` + + +### startTransaction8+ ### + +startTransaction(callback: AsyncCallback<void>): void; 启动KvStore数据库中的事务,并通过callback方式返回,此方法为异步方法。 @@ -3975,9 +4296,47 @@ startTransaction\(callback: AsyncCallback\): void; -### startTransaction ### +- 示例 -startTransaction\(\): Promise; + ``` + let kvStore; + function putBatchString(len, prefix) { + let entries = []; + for (var i = 0; i < len; i++) { + var entry = { + key : prefix + i, + value : { + type : distributedData.ValueType.STRING, + value : 'batch_test_string_value' + } + } + entries.push(entry); + } + return entries; + } + try { + var count = 0; + kvStore.on('dataChange', 0, function (data) { + console.log('startTransaction 0' + data) + count++; + }); + kvStore.startTransaction(async function (err,data) { + console.log('startTransaction success'); + let entries = putBatchString(10, 'batch_test_string_key'); + console.log('entries: ' + JSON.stringify(entries)); + await kvStore.putBatch(entries, async function (err,data) { + console.log('putBatch success'); + }); + }); + }catch(e) { + console.log('startTransaction e ' + e); + } + ``` + + +### startTransaction8+ ### + +startTransaction(): Promise<void>; 启动KvStore数据库中的事务,并通过Promise方式返回,此方法为异步方法。 @@ -3998,9 +4357,30 @@ startTransaction\(\): Promise; -### commit ### +- 示例 + + ``` + let kvStore; + try { + var count = 0; + kvStore.on('dataChange', distributedData.SubscribeType.SUBSCRIBE_TYPE_ALL, function (data) { + console.log('startTransaction ' + JSON.stringify(data)); + count++; + }); + kvStore.startTransaction().then(async (err) => { + console.log('startTransaction success'); + }).catch((err) => { + console.log('startTransaction fail ' + JSON.stringify(err)); + }); + }catch(e) { + console.log('startTransaction e ' + e); + } + ``` + -commit\(callback: AsyncCallback\): void; +### commit8+ ### + +commit(callback: AsyncCallback<void>): void; 提交KvStore数据库中的事务,并通过callback方式返回,此方法为异步方法。 @@ -4027,9 +4407,27 @@ commit\(callback: AsyncCallback\): void; -### commit ### +- 示例 + + ``` + let kvStore; + try { + kvStore.commit(function (err,data) { + if (err == undefined) { + console.log('commit success'); + } else { + console.log('commit fail'); + } + }); + }catch(e) { + console.log('Commit e ' + e); + } + ``` + + +### commit8+ ### -commit(\): Promise; +commit(): Promise<void>; 提交KvStore数据库中的事务,并通过Promise方式返回,此方法为异步方法。 @@ -4050,9 +4448,25 @@ commit(\): Promise; -### rollback ### +- 示例 + + ``` + let kvStore; + try { + kvStore.commit().then(async (err) => { + console.log('commit success'); + }).catch((err) => { + console.log('commit fail ' + JSON.stringify(err)); + }); + }catch(e) { + console.log('Commit e ' + e); + } + ``` + -rollback\(callback: AsyncCallback\): void; +### rollback8+ ### + +rollback(callback: AsyncCallback<void>): void; 在KvStore数据库中回滚事务,并通过callback方式返回,此方法为异步方法。 @@ -4079,9 +4493,27 @@ rollback\(callback: AsyncCallback\): void; -### rollback ### +- 示例 + + ``` + let kvStore; + try { + kvStore.rollback(function (err,data) { + if (err == undefined) { + console.log('commit success'); + } else { + console.log('commit fail'); + } + }); + }catch(e) { + console.log('Rollback e ' + e); + } + ``` + + +### rollback8+ ### -rollback(\): Promise; +rollback(): Promise<void>; 在KvStore数据库中回滚事务,并通过Promise方式返回,此方法为异步方法。 @@ -4102,9 +4534,25 @@ rollback(\): Promise; -### enableSync ### +- 示例 -enableSync\(enabled: boolean, callback: AsyncCallback\): void; + ``` + let kvStore; + try { + kvStore.rollback().then(async (err) => { + console.log('rollback success'); + }).catch((err) => { + console.log('rollback fail ' + JSON.stringify(err)); + }); + }catch(e) { + console.log('Rollback e ' + e); + } + ``` + + +### enableSync8+ ### + +enableSync(enabled: boolean, callback: AsyncCallback<void>): void; 设定是否开启同步,并通过callback方式返回,此方法为异步方法。 @@ -4142,9 +4590,27 @@ enableSync\(enabled: boolean, callback: AsyncCallback\): void; -### enableSync ### +- 示例 -enableSync\(enabled: boolean\): Promise; + ``` + let kvStore; + try { + kvStore.enableSync(true, function (err,data) { + if (err == undefined) { + console.log('enableSync success'); + } else { + console.log('enableSync fail'); + } + }); + }catch(e) { + console.log('EnableSync e ' + e); + } + ``` + + +### enableSync8+ ### + +enableSync(enabled: boolean): Promise<void>; 设定是否开启同步,并通过Promise方式返回,此方法为异步方法。 @@ -4190,9 +4656,25 @@ enableSync\(enabled: boolean\): Promise; -### setSyncRange ### +- 示例 + + ``` + let kvStore; + try { + kvStore.enableSync(true).then((err) => { + console.log('enableSync success'); + }).catch((err) => { + console.log('enableSync fail ' + JSON.stringify(err)); + }); + }catch(e) { + console.log('EnableSync e ' + e); + } + ``` + + +### setSyncRange8+ ### -setSyncRange\(localLabels: string[], remoteSupportLabels: string[], callback: AsyncCallback\): void; +setSyncRange(localLabels: string[], remoteSupportLabels: string[], callback: AsyncCallback<void>): void; 设置同步范围标签,并通过callback方式返回,此方法为异步方法。 @@ -4239,9 +4721,25 @@ setSyncRange\(localLabels: string[], remoteSupportLabels: string[], callback: As -### setSyncRange ### +- 示例 + + ``` + let kvStore; + try { + const localLabels = ['A', 'B']; + const remoteSupportLabels = ['C', 'D']; + kvStore.setSyncRange(localLabels, remoteSupportLabels, function (err,data) { + console.log('SetSyncRange put success'); + }); + }catch(e) { + console.log('SetSyncRange e ' + e); + } + ``` -setSyncRange\(localLabels: string[], remoteSupportLabels: string[\]\): Promise; + +### setSyncRange8+ ### + +setSyncRange(localLabels: string[], remoteSupportLabels: string[]): Promise<void>; 设置同步范围标签,并通过Promise方式返回,此方法为异步方法。 @@ -4296,6 +4794,24 @@ setSyncRange\(localLabels: string[], remoteSupportLabels: string[\]\): Promise +- 示例 + + ``` + let kvStore; + try { + const localLabels = ['A', 'B']; + const remoteSupportLabels = ['C', 'D']; + kvStore.setSyncRange(localLabels, remoteSupportLabels).then((err) => { + console.log('setSyncRange success'); + }).catch((err) => { + console.log('delete fail ' + err); + }); + }catch(e) { + console.log('SetSyncRange e ' + e); + } + ``` + + ## SubscribeType 描述订阅类型。 @@ -4543,11 +5059,11 @@ setSyncRange\(localLabels: string[], remoteSupportLabels: string[\]\): Promise -单版本分布式数据库,继承自KVStore,提供查询数据和同步数据的方法。在调用SingleKVStore的方法前,需要先通过getKVStore构建一个KVStore实例。 +单版本分布式数据库,继承自KVStore,提供查询数据和同步数据的方法。在调用 SingleKVStore 的方法前,需要先通过 getKVStore 构建一个 SingleKVStore 实例。 ### get -get\(key: string, callback: AsyncCallback\): void +get(key: string, callback: AsyncCallback<Uint8Array | string | boolean | number>): void 获取指定键的值,并通过callback方式返回,此方法为异步方法。 @@ -4588,6 +5104,7 @@ get\(key: string, callback: AsyncCallback -get\(key: string\): Promise +get(key: string): Promise<Uint8Array | string | boolean | number> 获取指定键的值,并通过Promise方式返回,此方法为异步方法。 @@ -4659,6 +5176,7 @@ get\(key: string\): Promise - 示例 ``` + let kvStore; const KEY_TEST_STRING_ELEMENT = 'key_test_string'; const VALUE_TEST_STRING_ELEMENT = 'value-test-string'; try { @@ -4677,9 +5195,9 @@ get\(key: string\): Promise } ``` -### getEntries ### +### getEntries8+ ### -getEntries\(keyPrefix: string, callback: AsyncCallback\): void; +getEntries(keyPrefix: string, callback: AsyncCallback<Entry[]>): void; 获取匹配指定键前缀的所有键值对,并通过callback方式返回,此方法为异步方法。 @@ -4720,6 +5238,7 @@ getEntries\(keyPrefix: string, callback: AsyncCallback\): void; - 示例 ``` + let kvStore; try { let entries = []; for (var i = 0; i < 10; i++) { @@ -4727,7 +5246,7 @@ getEntries\(keyPrefix: string, callback: AsyncCallback\): void; var entry = { key : key + i, value : { - type : factory.ValueType.INTEGER, + type : distributedData.ValueType.INTEGER, value : 222 } } @@ -4735,11 +5254,11 @@ getEntries\(keyPrefix: string, callback: AsyncCallback\): void; } kvStore.putBatch(entries, async function (err,data) { console.log('putBatch success'); - kvStore.getEntries('batch_test_number_key', function (err,entrys) { + await kvStore.getEntries('batch_test_number_key', function (err,entrys) { console.log('getEntries success'); console.log('entrys.length: ' + entrys.length); console.log('entrys[0]: ' + JSON.stringify(entrys[0])); - }); + }); }); }catch(e) { console.log('PutBatch e ' + e); @@ -4747,9 +5266,9 @@ getEntries\(keyPrefix: string, callback: AsyncCallback\): void; ``` -### getEntries ### +### getEntries8+ ### -getEntries\(keyPrefix: string\): Promise; +getEntries(keyPrefix: string): Promise<Entry[]>; 获取匹配指定键前缀的所有键值对,并通过Promise方式返回,此方法为异步方法。 @@ -4798,6 +5317,7 @@ getEntries\(keyPrefix: string\): Promise; - 示例 ``` + let kvStore; try { let entries = []; for (var i = 0; i < 10; i++) { @@ -4805,7 +5325,7 @@ getEntries\(keyPrefix: string\): Promise; var entry = { key : key + i, value : { - type : factory.ValueType.STRING, + type : distributedData.ValueType.STRING, value : 'batch_test_string_value' } } @@ -4814,7 +5334,7 @@ getEntries\(keyPrefix: string\): Promise; console.log('entries: ' + entries); kvStore.putBatch(entries).then(async (err) => { console.log('putBatch success'); - kvStore.getEntries('batch_test_string_key').then((entrys) => { + await kvStore.getEntries('batch_test_string_key').then((entrys) => { console.log('getEntries success'); console.log('entrys.length: ' + entrys.length); console.log('entrys[0]: ' + JSON.stringify(entrys[0])); @@ -4827,14 +5347,14 @@ getEntries\(keyPrefix: string\): Promise; console.log('putBatch fail ' + JSON.stringify(err)); }); }catch(e) { - console.log('PutBatch001 e ' + e); + console.log('PutBatch e ' + e); } ``` -### getEntries ### +### getEntries8+ ### -getEntries\(query: Query, callback: AsyncCallback\): void; +getEntries(query: Query, callback: AsyncCallback<Entry[]>): void; 获取与指定 Query 对象匹配的键值对列表,并通过callback方式返回,此方法为异步方法。 @@ -4875,6 +5395,7 @@ getEntries\(query: Query, callback: AsyncCallback\): void; - 示例 ``` + let kvStore; try { var arr = new Uint8Array([21,31]); let entries = []; @@ -4883,29 +5404,33 @@ getEntries\(query: Query, callback: AsyncCallback\): void; var entry = { key : key + i, value : { - type : factory.ValueType.BYTE_ARRAY, + type : distributedData.ValueType.BYTE_ARRAY, value : arr } } entries.push(entry); } - console.log('entries: ' + entries); + console.log('entries: ' + JSON.stringify(entries)); kvStore.putBatch(entries, async function (err,data) { console.log('putBatch success'); - kvStore.getEntries('batch_test_bool_key', function (err,entrys) { + const query = new distributedData.Query(); + query.prefixKey("batch_test"); + await kvStore.getEntries(query, function (err,entrys) { console.log('getEntries success'); console.log('entrys.length: ' + entrys.length); + console.log('entrys[0]: ' + JSON.stringify(entrys[0])); }); }); + console.log('GetEntries success'); }catch(e) { - console.log('PutBatch e ' + e); + console.log('GetEntries e ' + e); } ``` -### getEntries ### +### getEntries8+ ### -getEntries\(query: Query\): Promise; +getEntries(query: Query): Promise<Entry[]>; 获取匹配指定键前缀的所有键值对,并通过Promise方式返回,此方法为异步方法。 @@ -4962,24 +5487,24 @@ getEntries\(query: Query\): Promise; var entry = { key : key + i, value : { - type : factory.ValueType.BYTE_ARRAY, + type : distributedData.ValueType.BYTE_ARRAY, value : arr } } entries.push(entry); } - console.log('GetEntries entries: ' + entries); + console.log('entries: ' + JSON.stringify(entries)); kvStore.putBatch(entries).then(async (err) => { - console.log('GetEntries putBatch success'); - const query = new factory.Query(); + console.log('putBatch success'); + const query = new distributedData.Query(); query.prefixKey("batch_test"); - kvStore.getEntries(query).then((entrys) => { - console.log('GetEntries getEntries success'); + await kvStore.getEntries(query).then((entrys) => { + console.log('getEntries success'); }).catch((err) => { - console.log('GetEntries getEntries fail ' + JSON.stringify(err)); + console.log('getEntries fail ' + JSON.stringify(err)); }); }).catch((err) => { - console.log('GetEntries putBatch fail ' + JSON.stringify(err)); + console.log('GetEntries putBatch fail ' + JSON.stringify(err)) }); console.log('GetEntries success'); }catch(e) { @@ -4988,9 +5513,9 @@ getEntries\(query: Query\): Promise; ``` -### getResultSet ### +### getResultSet8+ ### -getResultSet\(keyPrefix: string, callback: AsyncCallback\): void; +getResultSet(keyPrefix: string, callback: AsyncCallback<KvStoreResultSet>): void; 从 KvStore 数据库中获取具有指定前缀的结果集,并通过callback方式返回,此方法为异步方法。 @@ -5031,6 +5556,7 @@ getResultSet\(keyPrefix: string, callback: AsyncCallback\): v - 示例 ``` + let kvStore; try { let resultSet; let entries = []; @@ -5039,7 +5565,7 @@ getResultSet\(keyPrefix: string, callback: AsyncCallback\): v var entry = { key : key + i, value : { - type : factory.ValueType.STRING, + type : distributedData.ValueType.STRING, value : 'batch_test_string_value' } } @@ -5047,7 +5573,7 @@ getResultSet\(keyPrefix: string, callback: AsyncCallback\): v } kvStore.putBatch(entries, async function (err, data) { console.log('GetResultSet putBatch success'); - kvStore.getResultSet('batch_test_string_key', async function (err, result) { + await kvStore.getResultSet('batch_test_string_key', async function (err, result) { console.log('GetResultSet getResultSet success'); resultSet = result; kvStore.closeResultSet(resultSet, function (err, data) { @@ -5061,9 +5587,9 @@ getResultSet\(keyPrefix: string, callback: AsyncCallback\): v ``` -### getResultSet ### +### getResultSet8+ ### -getResultSet\(keyPrefix: string\): Promise; +getResultSet(keyPrefix: string): Promise<KvStoreResultSet>; 从 KvStore 数据库中获取具有指定前缀的结果集,并通过Promise方式返回,此方法为异步方法。 @@ -5112,6 +5638,7 @@ getResultSet\(keyPrefix: string\): Promise; - 示例 ``` + let kvStore; try { let resultSet; let entries = []; @@ -5120,14 +5647,14 @@ getResultSet\(keyPrefix: string\): Promise; var entry = { key : key + i, value : { - type : factory.ValueType.STRING, + type : distributedData.ValueType.STRING, value : 'batch_test_string_value' } } entries.push(entry); } kvStore.putBatch(entries).then(async (err) => { - console.log('GetResult putBatch success'); + console.log('putBatch success'); }).catch((err) => { console.log('PutBatch putBatch fail ' + JSON.stringify(err)); }); @@ -5135,23 +5662,22 @@ getResultSet\(keyPrefix: string\): Promise; console.log('GetResult getResultSet success'); resultSet = result; }).catch((err) => { - console.log('GetResult getResultSet fail ' + JSON.stringify(err)); + console.log('getResultSet fail ' + JSON.stringify(err)); }); kvStore.closeResultSet(resultSet).then((err) => { console.log('GetResult closeResultSet success'); }).catch((err) => { - console.log('GetResult closeResultSet fail ' + JSON.stringify(err)); + console.log('closeResultSet fail ' + JSON.stringify(err)); }); - }catch(e) { console.log('GetResult e ' + e); } ``` -### getResultSet ### +### getResultSet8+ ### -getResultSet\(query: Query, callback: AsyncCallback\): void; +getResultSet(query: Query, callback: AsyncCallback<KvStoreResultSet>): void; 获取与指定 Query 对象匹配的 KvStoreResultSet 对象,并通过callback方式返回,此方法为异步方法。 @@ -5192,6 +5718,7 @@ getResultSet\(query: Query, callback: AsyncCallback\): void; - 示例 ``` + let kvStore; try { let resultSet; let entries = []; @@ -5200,7 +5727,7 @@ getResultSet\(query: Query, callback: AsyncCallback\): void; var entry = { key : key + i, value : { - type : factory.ValueType.STRING, + type : distributedData.ValueType.STRING, value : 'batch_test_string_value' } } @@ -5208,22 +5735,22 @@ getResultSet\(query: Query, callback: AsyncCallback\): void; } kvStore.putBatch(entries, async function (err, data) { console.log('putBatch success'); - kvStore.getResultSet('batch_test_string_key', async function (err, result) { + const query = new distributedData.Query(); + query.prefixKey("batch_test"); + await kvStore.getResultSet(query, async function (err, result) { console.log('getResultSet success'); resultSet = result; - kvStore.closeResultSet(resultSet, function (err, data) { - }) }); }); - }catch(e) { + } catch(e) { console.log('GetResultSet e ' + e); } ``` -### getResultSet ### +### getResultSet8+ ### -getResultSet\(query: Query\): Promise; +getResultSet(query: Query): Promise<KvStoreResultSet>; 获取与指定 Query 对象匹配的 KvStoreResultSet 对象,并通过Promise方式返回,此方法为异步方法。 @@ -5272,6 +5799,7 @@ getResultSet\(query: Query\): Promise; - 示例 ``` + let kvStore; try { let resultSet; let entries = []; @@ -5280,7 +5808,7 @@ getResultSet\(query: Query\): Promise; var entry = { key : key + i, value : { - type : factory.ValueType.STRING, + type : distributedData.ValueType.STRING, value : 'batch_test_string_value' } } @@ -5289,27 +5817,24 @@ getResultSet\(query: Query\): Promise; kvStore.putBatch(entries).then(async (err) => { console.log('putBatch success'); }).catch((err) => { - console.log('putBatch fail ' + err); - }); - kvStore.getResultSet('batch_test_string_key').then((result) => { - console.log('getResultSet success'); - resultSet = result; - }).catch((err) => { - console.log('getResultSet fail ' + err); + console.log('putBatch fail ' + JSON.stringify(err)); }); - kvStore.closeResultSet(resultSet).then((err) => { - console.log('closeResultSet success'); + const query = new distributedData.Query(); + query.prefixKey("batch_test"); + kvStore.getResultSet(query).then((result) => { + console.log(' getResultSet success'); + resultSet = result; }).catch((err) => { - console.log('closeResultSet fail ' + err); + console.log('getResultSet fail ' + JSON.stringify(err)); }); }catch(e) { - console.log('ResultSet e ' + e); + console.log('GetResultSet e ' + e); } ``` -### closeResultSet ### +### closeResultSet8+ ### -closeResultSet\(resultSet: KvStoreResultSet, callback: AsyncCallback\): void; +closeResultSet(resultSet: KvStoreResultSet, callback: AsyncCallback<void>): void; 关闭由 getResultSet 返回的 KvStoreResultSet 对象,并通过callback方式返回,此方法为异步方法。 @@ -5350,8 +5875,8 @@ closeResultSet\(resultSet: KvStoreResultSet, callback: AsyncCallback\): v - 示例 ``` + let kvStore; try { - console.log('CloseResultSet success'); let resultSet = null; kvStore.closeResultSet(resultSet, function (err, data) { if (err == undefined) { @@ -5366,9 +5891,9 @@ closeResultSet\(resultSet: KvStoreResultSet, callback: AsyncCallback\): v ``` -### closeResultSet ### +### closeResultSet8+ ### -closeResultSet\(resultSet: KvStoreResultSet\): Promise; +closeResultSet(resultSet: KvStoreResultSet): Promise<void>; 关闭由 getResultSet 返回的 KvStoreResultSet 对象,并通过Promise方式返回,此方法为异步方法。 @@ -5417,8 +5942,8 @@ closeResultSet\(resultSet: KvStoreResultSet\): Promise; - 示例 ``` + let kvStore; try { - console.log('CloseResultSet success'); let resultSet = null; kvStore.closeResultSet(resultSet).then(() => { console.log('closeResultSet success'); @@ -5431,9 +5956,9 @@ closeResultSet\(resultSet: KvStoreResultSet\): Promise; ``` -### getResultSize ### +### getResultSize8+ ### -getResultSize\(query: Query, callback: AsyncCallback\): void; +getResultSize(query: Query, callback: AsyncCallback<number>): void; 获取与指定 Query 对象匹配的结果数,并通过callback方式返回,此方法为异步方法。 @@ -5474,18 +5999,37 @@ getResultSize\(query: Query, callback: AsyncCallback\): void; - 示例 ``` + let kvStore; try { - // pass query - console.log('GetResultSize success'); - }catch(e) { + let entries = []; + for (var i = 0; i < 10; i++) { + var key = 'batch_test_string_key'; + var entry = { + key : key + i, + value : { + type : distributedData.ValueType.STRING, + value : 'batch_test_string_value' + } + } + entries.push(entry); + } + kvStore.putBatch(entries, async function (err, data) { + console.log('putBatch success'); + const query = new distributedData.Query(); + query.prefixKey("batch_test"); + await kvStore.getResultSize(query, async function (err, resultSize) { + console.log('getResultSet success'); + }); + }); + } catch(e) { console.log('GetResultSize e ' + e); } ``` -### getResultSize ### +### getResultSize8+ ### -getResultSize\(query: Query\): Promise; +getResultSize(query: Query): Promise<number>; 获取与指定 Query 对象匹配的结果数,并通过Promise方式返回,此方法为异步方法。 @@ -5534,18 +6078,41 @@ getResultSize\(query: Query\): Promise; - 示例 ``` + let kvStore; try { - // pass query - console.log('GetResultSize success'); + let entries = []; + for (var i = 0; i < 10; i++) { + var key = 'batch_test_string_key'; + var entry = { + key : key + i, + value : { + type : distributedData.ValueType.STRING, + value : 'batch_test_string_value' + } + } + entries.push(entry); + } + kvStore.putBatch(entries).then(async (err) => { + console.log('putBatch success'); + }).catch((err) => { + console.log('putBatch fail ' + JSON.stringify(err)); + }); + const query = new distributedData.Query(); + query.prefixKey("batch_test"); + kvStore.getResultSize(query).then((resultSize) => { + console.log('getResultSet success'); + }).catch((err) => { + console.log('getResultSet fail ' + JSON.stringify(err)); + }); }catch(e) { console.log('GetResultSize e ' + e); } ``` -### removeDeviceData ### +### removeDeviceData8+ ### -removeDeviceData\(deviceId: string, callback: AsyncCallback\): void; +removeDeviceData(deviceId: string, callback: AsyncCallback<void>): void; 删除指定设备的数据,并通过callback方式返回,此方法为异步方法。 @@ -5586,19 +6153,19 @@ removeDeviceData\(deviceId: string, callback: AsyncCallback\): void; - 示例 ``` - const KEY_TEST_FLOAT_ELEMENT = 'key_test_float_2'; + let kvStore; const KEY_TEST_STRING_ELEMENT = 'key_test_string_2'; + const VALUE_TEST_STRING_ELEMENT = 'value-string-002'; try { kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async function (err,data) { console.log('put success'); const deviceid = 'no_exist_device_id'; - kvStore.removeDeviceData(deviceid, async function (err,data) { + await kvStore.removeDeviceData(deviceid, async function (err,data) { if (err == undefined) { console.log('removeDeviceData success'); - done(); } else { console.log('removeDeviceData fail'); - kvStore.get(KEY_TEST_STRING_ELEMENT, async function (err,data) { + await kvStore.get(KEY_TEST_STRING_ELEMENT, async function (err,data) { console.log('RemoveDeviceData get success'); }); } @@ -5610,9 +6177,9 @@ removeDeviceData\(deviceId: string, callback: AsyncCallback\): void; ``` -### removeDeviceData ### +### removeDeviceData8+ ### -removeDeviceData\(deviceId: string\): Promise; +removeDeviceData(deviceId: string): Promise<void>; 删除指定设备的数据,并通过Promise方式返回,此方法为异步方法。 @@ -5661,6 +6228,7 @@ removeDeviceData\(deviceId: string\): Promise; - 示例 ``` + let kvStore; const KEY_TEST_STRING_ELEMENT = 'key_test_string_2'; const VALUE_TEST_STRING_ELEMENT = 'value-string-001'; try { @@ -5686,11 +6254,11 @@ removeDeviceData\(deviceId: string\): Promise; ``` -### on ### +### on8+ ### -on\(event: 'syncComplete', syncCallback: Callback>\): void; +on(event: 'syncComplete', syncCallback: Callback>\): vo

-

设备状态改变时触发的事件名。

+

同步完成时触发的事件名。

syncCallback

-

Callback<Array<[string, number]>>>

+

Callback<Array<[string, number]>

@@ -5729,28 +6297,29 @@ on\(event: 'syncComplete', syncCallback: Callback>\): vo - 示例 ``` + let kvStore; const KEY_TEST_FLOAT_ELEMENT = 'key_test_float'; const VALUE_TEST_FLOAT_ELEMENT = 321.12; try { - kvStore.on('dataChange', 0, function (data) { - console.log('OnChange 0' + data) + kvStore.on('syncComplete', function (data) { + console.log('syncComplete ' + data) }); kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT).then((data) => { - console.log('OnChange put success'); + console.log('syncComplete put success'); }).catch((error) => { - console.log('OnChange put fail ' + error); + console.log('syncComplete put fail ' + error); }); }catch(e) { - console.log('OnChange put e ' + e); + console.log('syncComplete put e ' + e); } ``` -### off ### +### off8+ ### -off\(event: 'syncComplete', syncCallback: Callback>\): void; +off(event: 'syncComplete', syncCallback?: Callback>\): v

-

设备状态改变时触发的事件名。

+

同步完成时触发的事件名。

syncCallback

-

Callback<Array<[string, number]>>>

+

Callback<Array<[string, number]>

-

+

用于向调用方发送同步结果的回调。

@@ -5789,23 +6358,24 @@ off\(event: 'syncComplete', syncCallback: Callback>\): v - 示例 ``` + let kvStore; try { const func = function (data) { - console.log('OffChange 0' + data) + console.log('syncComplete ' + data) }; - kvStore.on('dataChange', 0, func); - kvStore.off('dataChange', func); + kvStore.on('syncComplete', func); + kvStore.off('syncComplete', func); }catch(e) { - console.log('OffChange e ' + e); + console.log('syncComplete e ' + e); } ``` ### sync -sync\(deviceIdList: string\[\], mode: SyncMode, allowedDelayMs?: number\): void +sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void -在手动同步模式下,触发数据库同步,此方法为同步方法。 +在手动模式下,触发数据库同步,此方法为同步方法。 - 参数: @@ -5853,14 +6423,15 @@ sync\(deviceIdList: string\[\], mode: SyncMode, allowedDelayMs?: number\): void - 示例: ``` - kvStore.sync(deviceIds, 1, 1000); + let kvStore; + kvStore.sync('deviceIds', distributedData.SyncMode.PULL_ONLY, 1000); ``` -### setSyncParam ### +### setSyncParam8+ ### -setSyncParam\(defaultAllowedDelayMs: number, callback: AsyncCallback\): void; +setSyncParam(defaultAllowedDelayMs: number, callback: AsyncCallback<void>): void; -设置允许数据库同步的默认延迟,并通过callback方式返回,此方法为异步方法。 +设置允许数据库同步的默认延迟,并通过callback方式返回,此方法为异步方法。 - 参数: @@ -5899,22 +6470,23 @@ setSyncParam\(defaultAllowedDelayMs: number, callback: AsyncCallback\): v - 示例 ``` + let kvStore; try { const defaultAllowedDelayMs = 500; kvStore.setSyncParam(defaultAllowedDelayMs, function (err,data) { console.log('SetSyncParam put success'); }); }catch(e) { - console.log('testSingleKvStoreSetSyncParam101 e ' + e); + console.log('testSingleKvStoreSetSyncParam e ' + e); } ``` -### setSyncParam ### +### setSyncParam8+ ### -setSyncParam\(defaultAllowedDelayMs: number\): Promise; +setSyncParam(defaultAllowedDelayMs: number): Promise<void>; -设置允许数据库同步的默认延迟,并通过Promise方式返回,此方法为异步方法。 +设置允许数据库同步的默认延迟,并通过Promise方式返回,此方法为异步方法。 - 参数: @@ -5961,6 +6533,7 @@ setSyncParam\(defaultAllowedDelayMs: number\): Promise; - 示例 ``` + let kvStore; try { const defaultAllowedDelayMs = 500; kvStore.setSyncParam(defaultAllowedDelayMs).then((err) => { @@ -5974,9 +6547,9 @@ setSyncParam\(defaultAllowedDelayMs: number\): Promise; ``` -### getSecurityLevel ### +### getSecurityLevel8+ ### -getSecurityLevel\(callback: AsyncCallback\): void; +getSecurityLevel(callback: AsyncCallback<SecurityLevel>): void; 获取数据库的安全级别,并通过callback方式返回,此方法为异步方法。 @@ -6008,6 +6581,7 @@ getSecurityLevel\(callback: AsyncCallback\): void; - 示例 ``` + let kvStore; try { kvStore.getSecurityLevel(function (err,data) { console.log('getSecurityLevel success'); @@ -6018,9 +6592,9 @@ getSecurityLevel\(callback: AsyncCallback\): void; ``` -### getSecurityLevel ### +### getSecurityLevel8+ ### -getSecurityLevel(\): Promise; +getSecurityLevel(): Promise<SecurityLevel>; 获取数据库的安全级别,并通过Promise方式返回,此方法为异步方法。 @@ -6044,6 +6618,7 @@ getSecurityLevel(\): Promise; - 示例 ``` + let kvStore; try { kvStore.getSecurityLevel().then((data) => { console.log(' getSecurityLevel success'); @@ -6056,15 +6631,15 @@ getSecurityLevel(\): Promise; ``` -## DeviceKVStore ## +## DeviceKVStore8+ ## -在分布式系统中通过设备管理分布式数据,继承自KvStore,提供查询数据和同步数据的方法。在调用DeviceKVStore的方法前,需要先通过getKVStore构建一个KVStore实例。 +在分布式系统中按设备管理分布式数据,继承自KvStore,提供查询数据和同步数据的方法。在调用DeviceKVStore的方法前,需要先通过getKVStore构建一个DeviceKVStore实例。 -### get ### +### get8+ ### -get\(deviceId: string, key: string, callback: AsyncCallback\): void; +get(deviceId: string, key: string, callback: AsyncCallback<boolean|string|number|Uint8Array>): void; -获取与指定设备 ID 和密钥匹配的 String 值,并通过callback方式返回,此方法为异步方法。 +获取与指定设备 ID 和 key 匹配的 String 值,并通过callback方式返回,此方法为异步方法。 - 参数: @@ -6094,7 +6669,7 @@ get\(deviceId: string, key: string, callback: AsyncCallback

-

表示要查询的String值的键。

+

表示要查询 key 值的键。

callback

@@ -6112,12 +6687,13 @@ get\(deviceId: string, key: string, callback: AsyncCallback8+ ### -get\(deviceId: string, key: string\): Promise; +get(deviceId: string, key: string): Promise<boolean|string|number|Uint8Array>; -获取与指定设备 ID 和密钥匹配的 String 值,并通过Promise方式返回,此方法为异步方法。 +获取与指定设备 ID 和 key 匹配的 String 值,并通过Promise方式返回,此方法为异步方法。 - 参数: @@ -6161,7 +6737,7 @@ get\(deviceId: string, key: string\): Promise

-

表示要查询的String值的键。

+

表示要查询的 key 值的键。

@@ -6187,12 +6763,13 @@ get\(deviceId: string, key: string\): Promise - 示例 ``` + let kvStore; const KEY_TEST_STRING_ELEMENT = 'key_test_string_2'; const VALUE_TEST_STRING_ELEMENT = 'value-string-002'; try { kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(async (data) => { console.log(' put success'); - kvStore.get(localDeviceId, KEY_TEST_STRING_ELEMENT).then((data) => { + kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT).then((data) => { console.log('get success'); }).catch((err) => { console.log('get fail ' + JSON.stringify(err)); @@ -6206,11 +6783,11 @@ get\(deviceId: string, key: string\): Promise ``` -### getEntries ### +### getEntries8+ ### -getEntries\(deviceId: string, keyPrefix: string, callback: AsyncCallback\): void; +getEntries(deviceId: string, keyPrefix: string, callback: AsyncCallback<Entry[]>): void; -获取与指定设备 ID 和密钥前缀匹配的所有键值对,并通过callback方式返回,此方法为异步方法。 +获取与指定设备 ID 和 key 前缀匹配的所有键值对,并通过callback方式返回,此方法为异步方法。 - 参数: @@ -6258,6 +6835,7 @@ getEntries\(deviceId: string, keyPrefix: string, callback: AsyncCallback8+ ### -getEntries\(deviceId: string, keyPrefix: string\): Promise; +getEntries(deviceId: string, keyPrefix: string): Promise<Entry[]>; -获取与指定设备 ID 和密钥前缀匹配的所有键值对,并通过Promise方式返回,此方法为异步方法。 +获取与指定设备 ID 和 key 前缀匹配的所有键值对,并通过Promise方式返回,此方法为异步方法。 - 参数: @@ -6346,6 +6924,7 @@ getEntries\(deviceId: string, keyPrefix: string\): Promise; - 示例 ``` + let kvStore; try { let entries = []; for (var i = 0; i < 10; i++) { @@ -6353,16 +6932,16 @@ getEntries\(deviceId: string, keyPrefix: string\): Promise; var entry = { key : key + i, value : { - type : factory.ValueType.STRING, + type : distributedData.ValueType.STRING, value : 'batch_test_string_value' } } entries.push(entry); } console.log('entries: ' + entries); - kvStore.putBatch(entries).then(async (err) => { + kvStore.putBatch(entries).then(async (err) => { console.log('putBatch success'); - kvStore.getEntries(localDeviceId, 'batch_test_string_key').then((entrys) => { + await kvStore.getEntries('localDeviceId', 'batch_test_string_key').then((entrys) => { console.log('getEntries success'); console.log('entrys.length: ' + entrys.length); console.log('entrys[0]: ' + JSON.stringify(entrys[0])); @@ -6380,9 +6959,9 @@ getEntries\(deviceId: string, keyPrefix: string\): Promise; ``` -### getEntries ### +### getEntries8+ ### -getEntries\(query: Query, callback: AsyncCallback\): void; +getEntries(query: Query, callback: AsyncCallback<Entry[]>): void; 获取与指定 Query 对象匹配的键值对列表,并通过callback方式返回,此方法为异步方法。 @@ -6423,6 +7002,7 @@ getEntries\(query: Query, callback: AsyncCallback\): void; - 示例 ``` + let kvStore; try { var arr = new Uint8Array([21,31]); let entries = []; @@ -6431,29 +7011,35 @@ getEntries\(query: Query, callback: AsyncCallback\): void; var entry = { key : key + i, value : { - type : factory.ValueType.BYTE_ARRAY, + type : distributedData.ValueType.BYTE_ARRAY, value : arr } } entries.push(entry); } - console.log('entries: ' + entries); + console.log('entries: ' + JSON.stringify(entries)); kvStore.putBatch(entries, async function (err,data) { console.log('putBatch success'); - kvStore.getEntries(localDeviceId, 'batch_test_bool_key', function (err,entrys) { + expect(err == undefined).assertTrue(); + const query = new distributedData.Query(); + query.prefixKey("batch_test"); + query.deviceId('localDeviceId'); + await kvStore.getEntries(query, function (err,entrys) { console.log('getEntries success'); console.log('entrys.length: ' + entrys.length); + console.log('entrys[0]: ' + JSON.stringify(entrys[0])); }); }); + console.log('GetEntries success'); }catch(e) { - console.log('PutBatch e ' + e); + console.log('GetEntries e ' + e); } ``` -### getEntries ### +### getEntries8+ ### -getEntries\(query: Query\): Promise; +getEntries(query: Query): Promise<Entry[]>; 获取与指定 Query 对象匹配的键值对列表,并通过Promise方式返回,此方法为异步方法。 @@ -6502,6 +7088,7 @@ getEntries\(query: Query\): Promise; - 示例 ``` + let kvStore; try { var arr = new Uint8Array([21,31]); let entries = []; @@ -6510,32 +7097,35 @@ getEntries\(query: Query\): Promise; var entry = { key : key + i, value : { - type : factory.ValueType.BYTE_ARRAY, + type : distributedData.ValueType.BYTE_ARRAY, value : arr } } entries.push(entry); } - console.log('entries: ' + entries); + console.log('entries: ' + JSON.stringify(entries)); kvStore.putBatch(entries).then(async (err) => { console.log('putBatch success'); - kvStore.getEntries(localDeviceId, 'batch_test_bool_key').then((entrys) => { + const query = new distributedData.Query(); + query.prefixKey("batch_test"); + await kvStore.getEntries(query).then((entrys) => { console.log('getEntries success'); }).catch((err) => { console.log('getEntries fail ' + JSON.stringify(err)); }); }).catch((err) => { - console.log('putBatch fail ' + JSON.stringify(err)); + console.log('GetEntries putBatch fail ' + JSON.stringify(err)) }); + console.log('GetEntries success'); }catch(e) { - console.log('PutBatch e ' + e); + console.log('GetEntries e ' + e); } ``` -### getEntries ### +### getEntries8+ ### -getEntries\(deviceId: string, query: Query, callback: AsyncCallback\): void; +getEntries(deviceId: string, query: Query, callback: AsyncCallback<Entry[]>): void; 获取与指定设备 ID 和 Query 对象匹配的键值对列表,并通过callback方式返回,此方法为异步方法。 @@ -6585,6 +7175,7 @@ getEntries\(deviceId: string, query: Query, callback: AsyncCallback\) - 示例 ``` + let kvStore; try { var arr = new Uint8Array([21,31]); let entries = []; @@ -6593,29 +7184,35 @@ getEntries\(deviceId: string, query: Query, callback: AsyncCallback\) var entry = { key : key + i, value : { - type : factory.ValueType.BYTE_ARRAY, + type : distributedData.ValueType.BYTE_ARRAY, value : arr } } entries.push(entry); } - console.log('entries: ' + entries); + console.log('entries: ' + JSON.stringify(entries)); kvStore.putBatch(entries, async function (err,data) { console.log('putBatch success'); - kvStore.getEntries(localDeviceId, 'batch_test_bool_key', function (err,entrys) { + expect(err == undefined).assertTrue(); + var query = new distributedData.Query(); + query.deviceId('localDeviceId'); + query.prefixKey("batch_test"); + await kvStore.getEntries('localDeviceId', query, function (err,entrys) { console.log('getEntries success'); console.log('entrys.length: ' + entrys.length); - }); + console.log('entrys[0]: ' + JSON.stringify(entrys[0])); + }) }); + console.log('GetEntries success'); }catch(e) { - console.log('PutBatch e ' + e); + console.log('GetEntries e ' + e); } ``` -### getEntries ### +### getEntries8+ ### -getEntries\(deviceId: string, query: Query\): Promise; +getEntries(deviceId: string, query: Query): Promise<Entry[]>; 获取与指定设备 ID 和 Query 对象匹配的键值对列表,并通过Promise方式返回,此方法为异步方法。 @@ -6673,6 +7270,7 @@ getEntries\(deviceId: string, query: Query\): Promise; - 示例 ``` + let kvStore; try { var arr = new Uint8Array([21,31]); let entries = []; @@ -6681,16 +7279,19 @@ getEntries\(deviceId: string, query: Query\): Promise; var entry = { key : key + i, value : { - type : factory.ValueType.BYTE_ARRAY, + type : distributedData.ValueType.BYTE_ARRAY, value : arr } } entries.push(entry); } - console.log('entries: ' + entries); + console.log('entries: ' + JSON.stringify(entries)); kvStore.putBatch(entries).then(async (err) => { console.log('putBatch success'); - kvStore.getEntries(localDeviceId, 'batch_test_bool_key').then((entrys) => { + var query = new distributedData.Query(); + query.deviceId('localDeviceId'); + query.prefixKey("batch_test"); + await kvStore.getEntries('localDeviceId', query).then((entrys) => { console.log('getEntries success'); }).catch((err) => { console.log('getEntries fail ' + JSON.stringify(err)); @@ -6698,17 +7299,18 @@ getEntries\(deviceId: string, query: Query\): Promise; }).catch((err) => { console.log('putBatch fail ' + JSON.stringify(err)); }); + console.log('GetEntries success'); }catch(e) { - console.log('PutBatch e ' + e); + console.log('GetEntries e ' + e); } ``` -### getResultSet ### +### getResultSet8+ ### -getResultSet\(deviceId: string, keyPrefix: string, callback: AsyncCallback\): void; +getResultSet(deviceId: string, keyPrefix: string, callback: AsyncCallback<KvStoreResultSet>): void; -获取与指定设备 ID 和密钥前缀匹配的 KvStoreResultSet 对象,并通过callback方式返回,此方法为异步方法。 +获取与指定设备 ID 和 key 前缀匹配的 KvStoreResultSet 对象,并通过callback方式返回,此方法为异步方法。 - 参数: @@ -6756,12 +7358,13 @@ getResultSet\(deviceId: string, keyPrefix: string, callback: AsyncCallback8+ ### -getResultSet\(deviceId: string, keyPrefix: string\): Promise; +getResultSet(deviceId: string, keyPrefix: string): Promise<KvStoreResultSet>; -获取与指定设备 ID 和密钥前缀匹配的 KvStoreResultSet 对象,并通过Promise方式返回,此方法为异步方法。 +获取与指定设备 ID 和 key 前缀匹配的 KvStoreResultSet 对象,并通过Promise方式返回,此方法为异步方法。 - 参数: @@ -6831,9 +7434,10 @@ getResultSet\(deviceId: string, keyPrefix: string\): Promise; - 示例 ``` + let kvStore; try { let resultSet; - kvStore.getResultSet(localDeviceId, 'batch_test_string_key').then((result) => { + kvStore.getResultSet('localDeviceId', 'batch_test_string_key').then((result) => { console.log('getResultSet success'); resultSet = result; }).catch((err) => { @@ -6850,9 +7454,9 @@ getResultSet\(deviceId: string, keyPrefix: string\): Promise; ``` -### getResultSet ### +### getResultSet8+ ### -getResultSet\(query: Query, callback: AsyncCallback\): void; +getResultSet(query: Query, callback: AsyncCallback<KvStoreResultSet>): void; 获取与指定 Query 对象匹配的 KvStoreResultSet 对象,并通过callback方式返回,此方法为异步方法。 @@ -6893,20 +7497,43 @@ getResultSet\(query: Query, callback: AsyncCallback\): void; - 示例 ``` + let kvStore; try { let resultSet; - kvStore.getResultSet(function (err, result) { - console.log('getResultSet success'); + let entries = []; + for (var i = 0; i < 10; i++) { + var key = 'batch_test_string_key'; + var entry = { + key : key + i, + value : { + type : distributedData.ValueType.STRING, + value : 'batch_test_string_value' + } + } + entries.push(entry); + } + kvStore.putBatch(entries, async function (err, data) { + console.log('putBatch success'); + const query = new distributedData.Query(); + query.prefixKey("batch_test"); + query.deviceId('localDeviceId'); + await kvStore.getResultSet(query, async function (err, result) { + console.log('getResultSet success'); + resultSet = result; + await kvStore.closeResultSet(resultSet, function (err, data) { + console.log('closeResultSet success'); + }) + }); }); - }catch(e) { + } catch(e) { console.log('GetResultSet e ' + e); } ``` -### getResultSet ### +### getResultSet8+ ### -getResultSet\(query: Query\): Promise; +getResultSet(query: Query): Promise<KvStoreResultSet>; 获取与指定 Query 对象匹配的 KvStoreResultSet 对象,并通过Promise方式返回,此方法为异步方法。 @@ -6955,6 +7582,7 @@ getResultSet\(query: Query\): Promise; - 示例 ``` + let kvStore; try { let resultSet; let entries = []; @@ -6963,31 +7591,31 @@ getResultSet\(query: Query\): Promise; var entry = { key : key + i, value : { - type : factory.ValueType.STRING, + type : distributedData.ValueType.STRING, value : 'batch_test_string_value' } } entries.push(entry); } kvStore.putBatch(entries).then(async (err) => { - console.log('GetResultSet putBatch success'); + console.log('putBatch success'); }).catch((err) => { - console.log('PutBatch putBatch fail ' + JSON.stringify(err)); + console.log('putBatch fail ' + err); }); - const query = new factory.Query(); - query.deviceId(localDeviceId); + const query = new distributedData.Query(); + query.deviceId('localDeviceId'); query.prefixKey("batch_test"); console.log("GetResultSet " + query.getSqlLike()); kvStore.getResultSet(query).then((result) => { - console.log('GetResultSet getResultSet success'); + console.log('getResultSet success'); resultSet = result; }).catch((err) => { - console.log('GetResultSet getResultSet fail ' + JSON.stringify(err)); + console.log('getResultSet fail ' + JSON.stringify(err)); }); kvStore.closeResultSet(resultSet).then((err) => { - console.log('GetResultSet closeResultSet success'); + console.log('closeResultSet success'); }).catch((err) => { - console.log('GetResultSet closeResultSet fail ' + JSON.stringify(err)); + console.log('closeResultSet fail ' + JSON.stringify(err)); }); }catch(e) { console.log('GetResultSet e ' + e); @@ -6995,9 +7623,9 @@ getResultSet\(query: Query\): Promise; ``` -### getResultSet ### +### getResultSet8+ ### -getResultSet\(deviceId: string, query: Query, callback: AsyncCallback\): void; +getResultSet(deviceId: string, query: Query, callback: AsyncCallback<KvStoreResultSet>): void; 获取与指定设备ID和Query对象匹配的KvStoreResultSet对象,并通过callback方式返回,此方法为异步方法。 @@ -7047,20 +7675,42 @@ getResultSet\(deviceId: string, query: Query, callback: AsyncCallback8+ ### -getResultSet\(deviceId: string, query: Query\): Promise; +getResultSet(deviceId: string, query: Query): Promise<KvStoreResultSet>; 获取与指定设备ID和Query对象匹配的KvStoreResultSet对象,并通过Promise方式返回,此方法为异步方法。 @@ -7118,6 +7768,7 @@ getResultSet\(deviceId: string, query: Query\): Promise; - 示例 ``` + let kvStore; try { let resultSet; let entries = []; @@ -7126,7 +7777,7 @@ getResultSet\(deviceId: string, query: Query\): Promise; var entry = { key : key + i, value : { - type : factory.ValueType.STRING, + type : distributedData.ValueType.STRING, value : 'batch_test_string_value' } } @@ -7137,15 +7788,15 @@ getResultSet\(deviceId: string, query: Query\): Promise; }).catch((err) => { console.log('PutBatch putBatch fail ' + JSON.stringify(err)); }); - const query = new factory.Query(); - prefixKey("batch_test"); - kvStore.getResultSet(localDeviceId, query).then((result) => { + const query = new distributedData.Query(); + query.prefixKey("batch_test"); + kvStore.getResultSet('localDeviceId', query).then((result) => { console.log('GetResultSet getResultSet success'); resultSet = result; }).catch((err) => { console.log('GetResultSet getResultSet fail ' + JSON.stringify(err)); }); - query.deviceId(localDeviceId); + query.deviceId('localDeviceId'); console.log("GetResultSet " + query.getSqlLike()); kvStore.closeResultSet(resultSet).then((err) => { console.log('GetResultSet closeResultSet success'); @@ -7159,9 +7810,9 @@ getResultSet\(deviceId: string, query: Query\): Promise; ``` -### closeResultSet ### +### closeResultSet8+ ### -closeResultSet\(resultSet: KvStoreResultSet, callback: AsyncCallback\): void; +closeResultSet(resultSet: KvStoreResultSet, callback: AsyncCallback<void>): void; 关闭由 getResultSet 返回的 KvStoreResultSet 对象,并通过callback方式返回,此方法为异步方法。 @@ -7202,6 +7853,7 @@ closeResultSet\(resultSet: KvStoreResultSet, callback: AsyncCallback\): v - 示例 ``` + let kvStore; try { console.log('CloseResultSet success'); let resultSet = null; @@ -7218,9 +7870,9 @@ closeResultSet\(resultSet: KvStoreResultSet, callback: AsyncCallback\): v ``` -### closeResultSet ### +### closeResultSet8+ ### -closeResultSet\(resultSet: KvStoreResultSet\): Promise; +closeResultSet(resultSet: KvStoreResultSet): Promise<void>; 关闭由 getResultSet 返回的 KvStoreResultSet 对象,并通过Promise方式返回,此方法为异步方法。 @@ -7269,6 +7921,7 @@ closeResultSet\(resultSet: KvStoreResultSet\): Promise; - 示例 ``` + let kvStore; try { console.log('CloseResultSet success'); let resultSet = null; @@ -7283,9 +7936,9 @@ closeResultSet\(resultSet: KvStoreResultSet\): Promise; ``` -### getResultSize ### +### getResultSize8+ ### -getResultSize\(query: Query, callback: AsyncCallback\): void; +getResultSize(query: Query, callback: AsyncCallback<number>): void; 获取与指定 Query 对象匹配的结果数,并通过callback方式返回,此方法为异步方法。 @@ -7326,18 +7979,38 @@ getResultSize\(query: Query, callback: AsyncCallback\): void; - 示例 ``` + let kvStore; try { - // pass query - console.log('GetResultSize success'); - }catch(e) { + let entries = []; + for (var i = 0; i < 10; i++) { + var key = 'batch_test_string_key'; + var entry = { + key : key + i, + value : { + type : distributedData.ValueType.STRING, + value : 'batch_test_string_value' + } + } + entries.push(entry); + } + kvStore.putBatch(entries, async function (err, data) { + console.log('putBatch success'); + const query = new distributedData.Query(); + query.prefixKey("batch_test"); + query.deviceId('localDeviceId'); + await kvStore.getResultSize(query, async function (err, resultSize) { + console.log('getResultSet success'); + }); + }); + } catch(e) { console.log('GetResultSize e ' + e); } ``` -### getResultSize ### +### getResultSize8+ ### -getResultSize\(query: Query\): Promise; +getResultSize(query: Query): Promise<number>; 获取与指定 Query 对象匹配的结果数,并通过Promise方式返回,此方法为异步方法。 @@ -7386,18 +8059,42 @@ getResultSize\(query: Query\): Promise; - 示例 ``` + let kvStore; try { - // pass query - console.log('GetResultSize success'); + let entries = []; + for (var i = 0; i < 10; i++) { + var key = 'batch_test_string_key'; + var entry = { + key : key + i, + value : { + type : distributedData.ValueType.STRING, + value : 'batch_test_string_value' + } + } + entries.push(entry); + } + kvStore.putBatch(entries).then(async (err) => { + console.log('putBatch success'); + }).catch((err) => { + console.log('putBatch fail ' + JSON.stringify(err)); + }); + const query = new distributedData.Query(); + query.prefixKey("batch_test"); + query.deviceId('localDeviceId'); + kvStore.getResultSize(query).then((resultSize) => { + console.log('getResultSet success'); + }).catch((err) => { + console.log('getResultSet fail ' + JSON.stringify(err)); + }); }catch(e) { console.log('GetResultSize e ' + e); } ``` -### getResultSize ### +### getResultSize8+ ### -getResultSize\(deviceId: string, query: Query, callback: AsyncCallback\): void; +getResultSize(deviceId: string, query: Query, callback: AsyncCallback<number>): void; 获取与指定设备 ID 和 Query 对象匹配的结果数,并通过callback方式返回,此方法为异步方法。 @@ -7447,18 +8144,37 @@ getResultSize\(deviceId: string, query: Query, callback: AsyncCallback\ - 示例 ``` + let kvStore; try { - // pass query - console.log('GetResultSize success'); - }catch(e) { + let entries = []; + for (var i = 0; i < 10; i++) { + var key = 'batch_test_string_key'; + var entry = { + key : key + i, + value : { + type : distributedData.ValueType.STRING, + value : 'batch_test_string_value' + } + } + entries.push(entry); + } + kvStore.putBatch(entries, async function (err, data) { + console.log('putBatch success'); + const query = new distributedData.Query(); + query.prefixKey("batch_test"); + await kvStore.getResultSize('localDeviceId', query, async function (err, resultSize) { + console.log('getResultSet success'); + }); + }); + } catch(e) { console.log('GetResultSize e ' + e); } ``` -### getResultSize ### +### getResultSize8+ ### -getResultSize\(deviceId: string, query: Query\): Promise; +getResultSize(deviceId: string, query: Query): Promise<number>; 获取与指定设备 ID 和 Query 对象匹配的结果数,并通过Promise方式返回,此方法为异步方法。 @@ -7516,18 +8232,41 @@ getResultSize\(deviceId: string, query: Query\): Promise; - 示例 ``` + let kvStore; try { - // pass query - console.log('GetResultSize success'); + let entries = []; + for (var i = 0; i < 10; i++) { + var key = 'batch_test_string_key'; + var entry = { + key : key + i, + value : { + type : distributedData.ValueType.STRING, + value : 'batch_test_string_value' + } + } + entries.push(entry); + } + kvStore.putBatch(entries).then(async (err) => { + console.log('putBatch success'); + }).catch((err) => { + console.log('putBatch fail ' + JSON.stringify(err)); + }); + var query = new distributedData.Query(); + query.prefixKey("batch_test"); + kvStore.getResultSize('localDeviceId', query).then((resultSize) => { + console.log('getResultSet success'); + }).catch((err) => { + console.log('getResultSet fail ' + JSON.stringify(err)); + }); }catch(e) { console.log('GetResultSize e ' + e); } ``` -### removeDeviceData ### +### removeDeviceData8+ ### -removeDeviceData\(deviceId: string, callback: AsyncCallback\): void; +removeDeviceData(deviceId: string, callback: AsyncCallback<void>): void; 从当前数据库中删除指定设备的数据,并通过callback方式返回,此方法为异步方法。 @@ -7568,32 +8307,33 @@ removeDeviceData\(deviceId: string, callback: AsyncCallback\): void; - 示例 ``` + let kvStore; const KEY_TEST_STRING_ELEMENT = 'key_test_string'; const VALUE_TEST_STRING_ELEMENT = 'value-string-001'; try { kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async function (err,data) { console.log('RemoveDeviceData put success'); const deviceid = 'no_exist_device_id'; - kvStore.removeDeviceData(deviceid, async function (err,data) { + await kvStore.removeDeviceData(deviceid, async function (err,data) { if (err == undefined) { console.log('removeDeviceData success'); } else { - console.log('testDeviceKvStoreRemoveDeviceData101 removeDeviceData fail'); - kvStore.get(localDeviceId, KEY_TEST_STRING_ELEMENT, async function (err,data) { + console.log('removeDeviceData fail'); + await kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT, async function (err,data) { console.log('RemoveDeviceData get success'); }); } }); }); }catch(e) { - console.log('testDeviceKvStoreRemoveDeviceData101 e ' + e); + console.log('RemoveDeviceData e ' + e); } ``` -### removeDeviceData ### +### removeDeviceData8+ ### -removeDeviceData\(deviceId: string\): Promise; +removeDeviceData(deviceId: string): Promise<void>; 从当前数据库中删除指定设备的数据,并通过Promise方式返回,此方法为异步方法。 @@ -7642,6 +8382,7 @@ removeDeviceData\(deviceId: string\): Promise; - 示例 ``` + let kvStore; const KEY_TEST_STRING_ELEMENT = 'key_test_string'; const VALUE_TEST_STRING_ELEMENT = 'value-string-001'; try { @@ -7650,31 +8391,28 @@ removeDeviceData\(deviceId: string\): Promise; }).catch((err) => { console.log('RemoveDeviceData put fail ' + JSON.stringify(err)); }); - const deviceid = 'no_exist_device_id'; kvStore.removeDeviceData(deviceid).then((err) => { - console.log('RemoveDeviceData removeDeviceData success'); + console.log('removeDeviceData success'); }).catch((err) => { - console.log('RemoveDeviceData removeDeviceData fail ' + JSON.stringify(err)); + console.log('removeDeviceData fail ' + JSON.stringify(err)); }); - - kvStore.get(localDeviceId, KEY_TEST_STRING_ELEMENT).then((data) => { + kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT).then((data) => { console.log('RemoveDeviceData get success data:' + data); }).catch((err) => { console.log('RemoveDeviceData get fail ' + JSON.stringify(err)); }); - }catch(e) { console.log('RemoveDeviceData e ' + e); } ``` -### sync ### +### sync8+ ### -sync\(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number\): void; +sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void; -同步 DeviceKvStore 数据库,该方法为异步方法。 +在手动模式下,触发数据库同步,此方法为同步方法。 - 参数: @@ -7722,6 +8460,7 @@ sync\(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number\): void; - 示例 ``` + let kvStore; const KEY_TEST_SYNC_ELEMENT = 'key_test_sync'; const VALUE_TEST_SYNC_ELEMENT = 'value-string-001'; try { @@ -7730,8 +8469,8 @@ sync\(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number\): void; }); kvStore.put(KEY_TEST_SYNC_ELEMENT + 'testSync101', VALUE_TEST_SYNC_ELEMENT, function (err,data) { console.log('Sync put success'); - const devices = ['A12C1F9261528B21F95778D2FDC0B2E33943E6251AC5487F4473D005758905DB']; - const mode = factory.SyncMode.PULL_ONLY; + const devices = ['deviceList']; + const mode = distributedData.SyncMode.PULL_ONLY; kvStore.sync(devices, mode); }); }catch(e) { @@ -7739,11 +8478,11 @@ sync\(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number\): void; } ``` -### on ### +### on8+ ### -on\(event: 'syncComplete', syncCallback: Callback\>): void; +on(event: 'syncComplete', syncCallback: Callback\>): vo

-

设备状态改变时触发的事件名。

+

同步完成时触发的事件名。

syncCallback

-

Callback<Array<[string, number]>>>

+

Callback<Array<[string, number]>

@@ -7780,30 +8519,29 @@ on\(event: 'syncComplete', syncCallback: Callback\>): vo - 示例 - ``` const KEY_TEST_FLOAT_ELEMENT = 'key_test_float'; const VALUE_TEST_FLOAT_ELEMENT = 321.12; try { - kvStore.on('dataChange', 0, function (data) { - console.log('OnChange 0' + data) + kvStore.on('syncComplete', function (data) { + console.log('syncComplete ' + data) }); kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT).then((data) => { - console.log('OnChange put success'); + console.log('syncComplete put success'); }).catch((error) => { - console.log('OnChange put fail ' + error); + console.log('syncComplete put fail ' + error); }); }catch(e) { - console.log('OnChange put e ' + e); + console.log('syncComplete put e ' + e); } ``` -### off ### +### off8+ ### -off\(event: 'syncComplete', syncCallback: Callback>\): void; +off(event: 'syncComplete', syncCallback?: Callback>\): v

-

设备状态改变时触发的事件名。

+

同步完成时触发的事件名。

syncCallback

-

Callback<Array<[string, number]>>>

+

Callback<Array<[string, number]>

-

+

用于向调用方发送同步结果的回调。

@@ -7842,14 +8580,15 @@ off\(event: 'syncComplete', syncCallback: Callback>\): v - 示例 ``` + let kvStore; try { const func = function (data) { - console.log('OffChange 0' + data) + console.log('syncComplete ' + data) }; - kvStore.on('dataChange', 0, func); - kvStore.off('dataChange', func); + kvStore.on('syncComplete', func); + kvStore.off('syncComplete', func); }catch(e) { - console.log('OffChange001 e ' + e); + console.log('syncComplete e ' + e); } ``` @@ -7889,4 +8628,4 @@ off\(event: 'syncComplete', syncCallback: Callback>\): v - + \ No newline at end of file