Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
4255689e
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
4255689e
编写于
6月 30, 2022
作者:
W
wangkai
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新增接口文档补充
Signed-off-by:
N
wangkai
<
wangkai424@huawei.com
>
上级
dd550a69
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
432 addition
and
0 deletion
+432
-0
zh-cn/application-dev/reference/apis/js-apis-distributed-data.md
...pplication-dev/reference/apis/js-apis-distributed-data.md
+432
-0
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-distributed-data.md
浏览文件 @
4255689e
...
...
@@ -2227,6 +2227,73 @@ try {
console
.
log
(
"
An unexpected error occurred. Error:
"
+
e
);
}
```
### delete<sup>9+</sup>
delete(predicates: Predicates, callback: AsyncCallback
<
void
>
): void
从数据库中删除符合predicates条件的键值对,并通过callback方式返回,此方法为异步方法。
**系统能力:**
SystemCapability.DistributedDataManager.KVStore.Core
**参数:**
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| predicates | Predicates | 是 |指示筛选条件,当此参数为null时,应定义处理逻辑|
| callback | AsyncCallback
<
void
>
| 是 |回调函数。 |
**示例:**
```
js
let
kvStore
;
try
{
let
predicates
=
new
dataShare
.
DataSharePredicates
();
await
kvStore
.
delete
(
predicates
,
function
(
err
,
data
)
{
if
(
err
==
undefined
)
{
console
.
log
(
'
delete success
'
);
}
else
{
console
.
log
(
'
delete fail
'
+
err
);
}
});
}
catch
(
e
)
{
console
.
log
(
'
An unexpected error occurred. Error:
'
+
e
);
}
```
### delete<sup>9+</sup>
delete(predicates: Predicates): Promise
<
void
>
从数据库中删除符合predicates条件的键值对,并通过Promise方式返回,此方法为异步方法。
**系统能力:**
SystemCapability.DistributedDataManager.KVStore.Core
**参数:**
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| predicates | Predicates | 是 |指示筛选条件,当此参数为null时,应定义处理逻辑。|
**返回值:**
| 类型 | 说明 |
| ------ | ------- |
| Promise
<
void
>
|Promise实例,用于异步处理。|
**示例:**
```
js
let
kvStore
;
try
{
let
predicates
=
new
dataShare
.
DataSharePredicates
();
let
arr
=
[
"
name
"
];
predicates
.
inKeys
(
arr
);
kvStore
.
put
(
"
name
"
,
"
bob
"
).
then
((
data
)
=>
{
console
.
log
(
'
put success
'
+
JSON
.
stringify
(
data
));
kvStore
.
delete
(
predicates
).
then
((
data
)
=>
{
###
on
(
'
dataChange
'
)
on
(
event
:
'
dataChange
'
,
type
:
SubscribeType
,
observer
:
Callback
&
lt
;
ChangeNotification
&
gt
;):
void
...
...
@@ -2304,6 +2371,36 @@ kvStore.off('dataChange', function (data) {
});
```
### off('syncComplete')<sup>9+</sup>
off(event: 'syncComplete', syncCallback?: Callback<Array<[string, number]>>): void
取消订阅数据变更通知,此方法为同步方法。
**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
**参数:**
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| event |string | 是 |取消订阅的事件名,固定为'syncComplete',表示同步完成事件。 |
| syncCallback |Callback<Array<[string, number]>> | 否 |用于向调用方发送同步结果的回调。 |
**示例:**
```
js
let kvStore;
try {
const func = function (data) {
console.log('syncComplete ' + data)
};
kvStore.on('syncComplete', func);
kvStore.off('syncComplete', func);
}catch(e) {
console.log('syncComplete e ' + e);
}
```
### putBatch<sup>8+</sup>
...
...
@@ -2406,6 +2503,79 @@ try {
}
```
### putBatch<sup>9+</sup>
putBatch(value: Array<ValuesBucket>, callback: AsyncCallback<void>): void
将值写入KvStore数据库,并通过callback方式返回,此方法为异步方法。
**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
**参数:**
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| value |Array[<ValuesBucket>]()[] | 是 |表示要插入的数据。 |
| callback |Asyncallback<void> |是 |回调函数。 |
**示例:**
```
js
let kvStore;
try {
var arr = new Uint8Array([21,31]);
let entries = new Array({"name": "roe11", "age": 21, "salary": 20.5, "blobType": u8,},
{"name": "roe12", "age": 21, "salary": 20.5, "blobType": u8,},
{"name": "roe13", "age": 21, "salary": 20.5, "blobType": u8,})
kvStore.putBatch(entries, async function (err,data) {
console.log('putBatch success');
}).catch((err) => {
console.log('putBatch fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('putBatch e ' + JSON.stringify(e));
}
```
### putBatch<sup>9+</sup>
putBatch(value: Array<ValuesBucket>): Promise<void>
将valuesbucket类型的值写入KvStore数据库,并通过Promise方式返回,此方法为异步方法。
**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
**参数:**
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| value |Array<[ValuesBucket>](#)[] | 是 |表示要插入的数据。 |
**返回值:**
| 类型 | 说明 |
| ------ | ------- |
| Promise<void> |Promise实例,用于异步处理。|
**示例:**
```
js
let kvStore;
try {
var arr = new Uint8Array([21,31]);
let entries = new Array({"name": "roe11", "age": 21, "salary": 20.5, "blobType": u8,},
{"name": "roe12", "age": 21, "salary": 20.5, "blobType": u8,},
{"name": "roe13", "age": 21, "salary": 20.5, "blobType": u8,})
kvStore.putBatch(entries).then(async (err) => {
console.log('putBatch success');
}).catch((err) => {
console.log('putBatch fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('PutBatch e ' + JSON.stringify(e));
}
```
### deleteBatch<sup>8+</sup>
...
...
@@ -3440,6 +3610,79 @@ try {
}
```
### getResultSet<sup>9+</sup> ###
getResultSet(predicates: Predicates, callback: AsyncCallback<KvStoreResultSet>): void
获取与指定Predicate对象匹配的KvStoreResultSet对象,并通过callback方式返回,此方法为异步方法。
**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
**参数:**
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| predicates | Predicates | 是 |指示筛选条件,当此参数为null时,应定义处理逻辑。 |
| callback |AsyncCallback<[KvStoreResultSet](#kvstoreresultsetsup8sup)> | 是 |回调函数,获取与指定Predicates对象匹配的KvStoreResultSet对象。 |
**示例:**
```
js
let kvStore;
try {
let resultSet;
let predicates = new dataShare.DataSharePredicates();
predicates.prefixKey("batch_test_string_key");
await kvStore.getResultSet(predicates, async function (err, result) {
console.log(' GetResultSet success');
resultSet = result;
await kvStore.closeResultSet(resultSet, function (err, data) {
console.log(' closeResultSet success');
})
});
}catch(e) {
console.log('An unexpected error occurred. Error:' + e);
}
```
### getResultSet<sup>9+</sup> ###
getResultSet(predicates: Predicates): Promise<KvStoreResultSet>
获取与指定Predicate对象匹配的KvStoreResultSet对象,并通过Promise方式返回,此方法为异步方法。
**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
**参数:**
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| predicates |[Predicates](#) | 是 |指示筛选条件,当此参数为null时,应定义处理逻辑 |
**返回值:**
| 类型 | 说明 |
| ------ | ------- |
|Promise<[KvStoreResultSet](#kvstoreresultset8)> |Promise实例,用于获取异步返回结果。|
**示例:**
```
js
let kvStore;
try {
let resultSet;
let predicates = new dataShare.DataSharePredicates();
predicates.prefixKey("batch_test_string_key");
await kvStore.getResultSet(predicates) .then((result) => {
console.log(' GetResultSet success');
resultSet = result;
await kvStore.closeResultSet(resultSet, fun ction (err, data) {
console.log(' closeResultSet success');
})
});
}catch(e) {
console.log('An unexpected error occurred. Error:' + e);
}
```
### closeResultSet<sup>8+</sup> ###
closeResultSet(resultSet: KvStoreResultSet, callback: AsyncCallback<void>): void
...
...
@@ -3769,8 +4012,61 @@ try {
}
```
### on('dataChange')<sup>9+</sup> ###
on(event: 'dataChange', type: SubscribeType, listener: Callback<ChangeNotification>): void
订阅指定类型的数据变更通知,此方法为同步方法。
**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
**参数:**
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| event |string | 是 |订阅的事件名,固定为'dataChange',表示数据变更事件。 |
| type |[SubscribeType](#subscribetype) | 是 |表示订阅的类型。 |
| listener |Callback<[ChangeNotification](#changenotification)> | 是 |回调函数。 |
**示例:**
```
js
let kvStore;
kvStore.on('dataChange', distributedData.SubscribeType.SUBSCRIBE_TYPE_LOCAL, function (data) {
console.log("dataChange callback call data: " + JSON.stringify(data));
});
```
### off('dataChange')<sup>9+</sup> ###
off(event:'dataChange', listener?: Callback<ChangeNotification>): void
取消订阅数据变更通知,此方法为同步方法。
**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
**参数:**
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| event |string | 是 |取消订阅的事件名,固定为'dataChange',表示数据变更事件。 |
| listener |Callback<[ChangeNotification](#changenotification)> |否 |回调函数。 |
**示例:**
### sync
```
js
let kvStore;
kvStore.on('dataChange', function (data) {
console.log("callback call data: " + data);
});
kvStore.off('dataChange', function (data) {
console.log("callback call data: " + data);
});
```
### sync<sup>7+</sup>
sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void
...
...
@@ -3795,6 +4091,47 @@ let kvStore;
kvStore.sync('deviceIds', distributedData.SyncMode.PULL_ONLY, 1000);
```
### sync<sup>9+</sup>
sync(deviceIds: string[], query: Query, mode: SyncMode, delayMs?: number): void
在手动同步方式下,触发数据库同步,此方法为同步方法。关于分布式数据服务的同步方式说明,请见[分布式数据服务概述](../../database/database-mdds-overview.md)。
**需要权限**: ohos.permission.DISTRIBUTED_DATASYNC。
**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
**参数:**
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| deviceIds |string[] | 是 |同一组网环境下,需要同步的设备的deviceId列表。 |
| query |[Query](#querysup8sup) | 是 |表示数据库的查询谓词条件 |
| delayMs |number | 否 |可选参数,允许延时时间,单位:ms(毫秒)。 |
**示例:**
```
js
let kvstore;
const KEY_TEST_SYNC_ELEMENT = 'key_test_sync';
const VALUE_TEST_SYNC_ELEMENT = 'value-string-001';
try {
kvStore.on('syncComplete', function (data) {
console.log('Sync dataChange');
});
kvStore.put(KEY_TEST_SYNC_ELEMENT + 'testSync101', VALUE_TEST_SYNC_ELEMENT, function (err,data) {
console.log('Sync put success');
const devices = ['deviceList'];
const mode = distributedData.SyncMode.PULL_ONLY;
const query = new distributedData.Query();
query.prefixKey("batch_test");
query.deviceId('localDeviceId');
kvStore.sync(devices, query, 1000);
});
}catch(e) {
console.log('Sync e' + e);
}
```
### setSyncParam<sup>8+</sup> ###
setSyncParam(defaultAllowedDelayMs: number, callback: AsyncCallback<void>): void
...
...
@@ -5062,6 +5399,48 @@ try {
}
```
### sync<sup>9+</sup> ###
sync(deviceIds: string[], query: Query, mode: SyncMode, delayMs?: number): void
在手动同步方式下, 触发数据库同步,此方法为同步方法。关于分布式数据服务的同步方式说明,请见[分布式数据服务概述](../../database/database-mdds-overview.md)。
**需要权限**: ohos.permission.DISTRIBUTED_DATASYNC。
**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
**参数:**
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| deviceIds |string[] | 是 |需要同步DeviceKvStore数据库的设备ID列表。 |
| query |[Query](#querysup8sup) | 是 | 数据库的查询谓词条件 |
| delayMs |number | 否 |可选参数,允许延时时间,单位:ms(毫秒)。 |
**示例:**
```
js
let kvstore;
const KEY_TEST_SYNC_ELEMENT = 'key_test_sync';
const VALUE_TEST_SYNC_ELEMENT = 'value-string-001';
try {
kvStore.on('syncComplete', function (data) {
console.log('Sync dataChange');
});
kvStore.put(KEY_TEST_SYNC_ELEMENT + 'testSync101', VALUE_TEST_SYNC_ELEMENT, function (err,data) {
console.log('Sync put success');
const devices = ['deviceList'];
const mode = distributedData.SyncMode.PULL_ONLY;
const query = new distributedData.Query();
query.prefixKey("batch_test");
query.deviceId('localDeviceId');
kvStore.sync(devices, query, 1000);
});
}catch(e) {
console.log('Sync e' + e);
}
```
### on('syncComplete')<sup>8+</sup> ###
on(event: 'syncComplete', syncCallback: Callback<Array<[string, number]>>): void
...
...
@@ -5128,6 +5507,59 @@ try {
}
```
### on('dataChange')<sup>9+</sup> ###
on(event: 'dataChange', type: SubscribeType, listener: Callback<ChangeNotification>): void
订阅指定类型的数据变更通知,此方法为同步方法。
**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
**参数:**
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| event |string | 是 |订阅的事件名,固定为'dataChange',表示数据变更事件。 |
| type |[SubscribeType](#subscribetype) | 是 |表示订阅的类型。 |
| listener |Callback<[ChangeNotification](#changenotification)> | 是 |回调函数。 |
**示例:**
```
js
let kvStore;
kvStore.on('dataChange', distributedData.SubscribeType.SUBSCRIBE_TYPE_LOCAL, function (data) {
console.log("dataChange callback call data: " + JSON.stringify(data));
});
```
### off('dataChange')<sup>9+</sup> ###
off(event:'dataChange', listener?: Callback<ChangeNotification>): void
取消订阅数据变更通知,此方法为同步方法。
**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
**参数:**
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| event |string | 是 |取消订阅的事件名,固定为'dataChange',表示数据变更事件。 |
| listener |Callback<[ChangeNotification](#changenotification)> |否 |回调函数。 |
**示例:**
```
js
let kvStore;
kvStore.on('dataChange', function (data) {
console.log("callback call data: " + data);
});
kvStore.off('dataChange', function (data) {
console.log("callback call data: " + data);
});
```
## SyncMode
同步模式枚举。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录