• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 轻量级存储
2
3轻量级存储为应用提供key-value键值型的文件数据处理能力,支持应用对数据进行轻量级存储及查询。数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型。
4
5
6> **说明:**
7>
8> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
9
10
11## 导入模块
12
13```js
14import data_storage from '@ohos.data.storage';
15```
16
17## 常量
18
19**系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.Preferences.Core
20
21| 名称             | 参数类型 | 可读 | 可写 | 说明                                  |
22| ---------------- | -------- | ---- | ---- | ------------------------------------- |
23| MAX_KEY_LENGTH   | number   | 是   | 否   | key的最大长度限制为80字节。     |
24| MAX_VALUE_LENGTH | number   | 是   | 否   | value的最大长度限制为8192字节。 |
25
26
27## data_storage.getStorageSync
28
29getStorageSync(path: string): Storage
30
31读取指定文件,将数据加载到Storage实例,用于数据操作。
32
33**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
34
35**参数:**
36
37| 参数名 | 类型   | 必填 | 说明                       |
38| ------ | ------ | ---- | -------------------------- |
39| path   | string | 是   | 应用程序内部数据存储路径。 |
40
41**返回值:**
42
43| 类型                | 说明                                              |
44| ------------------- | ------------------------------------------------- |
45| [Storage](#storage) | 获取到要操作的Storage实例,用于进行数据存储操作。 |
46
47**示例:**
48
49```js
50import featureAbility from '@ohos.ability.featureAbility';
51
52var path;
53var context = featureAbility.getContext();
54context.getFilesDir().then((filePath) => {
55  path = filePath;
56  console.info("======================>getFilesDirPromise====================>");
57
58  let storage = data_storage.getStorageSync(path + '/mystore');
59  storage.putSync('startup', 'auto');
60  storage.flushSync();
61});
62```
63
64
65## data_storage.getStorage
66
67getStorage(path: string, callback: AsyncCallback<Storage>): void
68
69读取指定文件,将数据加载到Storage实例,用于数据操作,使用callback方式返回结果,此方法为异步方法。
70
71**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
72
73**参数:**
74
75| 参数名   | 类型                                     | 必填 | 说明                       |
76| -------- | ---------------------------------------- | ---- | -------------------------- |
77| path     | string                                   | 是   | 应用程序内部数据存储路径。 |
78| callback | AsyncCallback<[Storage](#storage)> | 是   | 回调函数。                 |
79
80**示例:**
81
82```js
83import featureAbility from '@ohos.ability.featureAbility';
84
85var path;
86var context = featureAbility.getContext();
87context.getFilesDir().then((filePath) => {
88  path = filePath;
89  console.info("======================>getFilesDirPromise====================>");
90
91  data_storage.getStorage(path + '/mystore', function (err, storage) {
92    if (err) {
93      console.info("Failed to get the storage. path: " + path + '/mystore');
94      return;
95    }
96    storage.putSync('startup', 'auto');
97    storage.flushSync();
98  })
99});
100```
101
102
103## data_storage.getStorage
104
105getStorage(path: string): Promise<Storage>
106
107读取指定文件,将数据加载到Storage实例,用于数据操作,使用Promise方式返回结果,此方法为异步方法。
108
109**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
110
111**参数:**
112
113| 参数名 | 类型   | 必填 | 说明                       |
114| ------ | ------ | ---- | -------------------------- |
115| path   | string | 是   | 应用程序内部数据存储路径。 |
116
117**返回值:**
118
119| 类型                               | 说明                            |
120| ---------------------------------- | ------------------------------- |
121| Promise<[Storage](#storage)> | Promise实例,用于异步获取结果。 |
122
123**示例:**
124
125```js
126import featureAbility from '@ohos.ability.featureAbility';
127
128var path;
129var context = featureAbility.getContext();
130context.getFilesDir().then((filePath) => {
131  path = filePath;
132  console.info("======================>getFilesDirPromise====================>");
133
134  let getPromise = data_storage.getStorage(path + '/mystore');
135  getPromise.then((storage) => {
136    storage.putSync('startup', 'auto');
137    storage.flushSync();
138  }).catch((err) => {
139    console.info("Failed to get the storage. path: " + path + '/mystore');
140  })
141});
142```
143
144
145## data_storage.deleteStorageSync
146
147deleteStorageSync(path: string): void
148
149从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。
150
151**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
152
153**参数:**
154
155| 参数名 | 类型   | 必填 | 说明                       |
156| ------ | ------ | ---- | -------------------------- |
157| path   | string | 是   | 应用程序内部数据存储路径。 |
158
159**示例:**
160
161```js
162import featureAbility from '@ohos.ability.featureAbility';
163
164var path;
165var context = featureAbility.getContext();
166context.getFilesDir().then((filePath) => {
167    path = filePath;
168    console.info("======================>getFilesDirPromise====================>");
169
170    data_storage.deleteStorageSync(path + '/mystore');
171});
172```
173
174## data_storage.deleteStorage
175
176deleteStorage(path: string, callback: AsyncCallback<void>): void
177
178从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题,使用callback方式返回结果,此方法为异步方法。
179
180**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
181
182**参数:**
183
184| 参数名   | 类型                      | 必填 | 说明                       |
185| -------- | ------------------------- | ---- | -------------------------- |
186| path     | string                    | 是   | 应用程序内部数据存储路径。 |
187| callback | AsyncCallback<void> | 是   | 回调函数。                 |
188
189**示例:**
190
191```js
192import featureAbility from '@ohos.ability.featureAbility';
193
194var path;
195var context = featureAbility.getContext();
196context.getFilesDir().then((filePath) => {
197  path = filePath;
198  console.info("======================>getFilesDirPromise====================>");
199
200  data_storage.deleteStorage(path + '/mystore', function (err) {
201    if (err) {
202      console.info("Failed to delete the storage with err: " + err);
203      return;
204    }
205    console.info("Succeeded in deleting the storage.");
206  })
207});
208```
209
210
211## data_storage.deleteStorage
212
213deleteStorage(path: string): Promise<void>
214
215从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题,使用promise方式返回结果,此方法为异步方法。
216
217**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
218
219**参数:**
220
221| 参数名 | 类型   | 必填 | 说明                       |
222| ------ | ------ | ---- | -------------------------- |
223| path   | string | 是   | 应用程序内部数据存储路径。 |
224
225**返回值:**
226
227| 类型                | 说明                            |
228| ------------------- | ------------------------------- |
229| Promise<void> | Promise实例,用于异步获取结果。 |
230
231**示例:**
232
233```js
234import featureAbility from '@ohos.ability.featureAbility';
235
236var path;
237var context = featureAbility.getContext();
238context.getFilesDir().then((filePath) => {
239  path = filePath;
240  console.info("======================>getFilesDirPromise====================>");
241
242  let promisedelSt = data_storage.deleteStorage(path + '/mystore');
243  promisedelSt.then(() => {
244    console.info("Succeeded in deleting the storage.");
245  }).catch((err) => {
246    console.info("Failed to delete the storage with err: " + err);
247  })
248});
249```
250
251
252## data_storage.removeStorageFromCacheSync
253
254removeStorageFromCacheSync(path: string): void
255
256从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。
257
258**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
259
260**参数:**
261| 参数名 | 类型   | 必填 | 说明                       |
262| ------ | ------ | ---- | -------------------------- |
263| path   | string | 是   | 应用程序内部数据存储路径。 |
264
265**示例:**
266
267```js
268import featureAbility from '@ohos.ability.featureAbility';
269
270var path;
271var context = featureAbility.getContext();
272context.getFilesDir().then((filePath) => {
273    path = filePath;
274    console.info("======================>getFilesDirPromise====================>");
275
276    data_storage.removeStorageFromCacheSync(path + '/mystore');
277});
278```
279
280
281## data_storage.removeStorageFromCache
282
283removeStorageFromCache(path: string, callback: AsyncCallback<void>): void
284
285从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。使用callback方式返回结果,此方法为异步方法。
286
287**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
288
289**参数:**
290
291| 参数名   | 类型                      | 必填 | 说明                       |
292| -------- | ------------------------- | ---- | -------------------------- |
293| path     | string                    | 是   | 应用程序内部数据存储路径。 |
294| callback | AsyncCallback<void> | 是   | 回调函数。                 |
295
296**示例:**
297
298```js
299import featureAbility from '@ohos.ability.featureAbility';
300
301var path;
302var context = featureAbility.getContext();
303context.getFilesDir().then((filePath) => {
304  path = filePath;
305  console.info("======================>getFilesDirPromise====================>");
306
307  data_storage.removeStorageFromCache(path + '/mystore', function (err) {
308    if (err) {
309      console.info("Failed to remove storage from cache with err: " + err);
310      return;
311    }
312    console.info("Succeeded in removing storage from cache.");
313  })
314});
315```
316
317
318## data_storage.removeStorageFromCache
319
320removeStorageFromCache(path: string): Promise<void>
321
322从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。使用Promise方式返回结果,此方法为异步方法。
323
324**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
325
326**参数:**
327
328| 参数名 | 类型   | 必填 | 说明                       |
329| ------ | ------ | ---- | -------------------------- |
330| path   | string | 是   | 应用程序内部数据存储路径。 |
331
332**返回值:**
333
334| 类型                | 说明                            |
335| ------------------- | ------------------------------- |
336| Promise<void> | Promise实例,用于异步获取结果。 |
337
338**示例:**
339
340```js
341import featureAbility from '@ohos.ability.featureAbility';
342
343var path;
344var context = featureAbility.getContext();
345context.getFilesDir().then((filePath) => {
346  path = filePath;
347  console.info("======================>getFilesDirPromise====================>");
348
349  let promiserevSt = data_storage.removeStorageFromCache(path + '/mystore')
350  promiserevSt.then(() => {
351    console.info("Succeeded in removing storage from cache.");
352  }).catch((err) => {
353    console.info("Failed to remove storage from cache with err: " + err);
354  })
355});
356```
357
358## Storage
359
360提供获取和修改存储数据的接口。
361
362### getSync
363
364getSync(key: string, defValue: ValueType): ValueType
365
366获取键对应的值,如果值为null或者非默认值类型,返回默认数据defValue。
367
368**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
369
370**参数:**
371
372| 参数名   | 类型                    | 必填 | 说明                                                         |
373| -------- | ----------------------- | ---- | ------------------------------------------------------------ |
374| key      | string                  | 是   | 要获取的存储key名称,不能为空。                              |
375| defValue | [ValueType](#valuetype) | 是   | 给定key的存储不存在,则要返回的默认值。支持number、string、boolean。 |
376
377**返回值:**
378
379| 类型      | 说明                                                     |
380| --------- | -------------------------------------------------------- |
381| ValueType | 键对应的值,如果值为null或者非默认值类型,返回默认数据。 |
382
383**示例:**
384
385```js
386let value = storage.getSync('startup', 'default');
387console.info("The value of startup is " + value);
388```
389
390
391### get
392
393get(key: string, defValue: ValueType, callback: AsyncCallback<ValueType>): void
394
395获取键对应的值,如果值为null或者非默认值类型,返回默认数据defValue。使用callback方式返回结果,此方法为异步方法。
396
397**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
398
399**参数:**
400
401| 参数名   | 类型                           | 必填 | 说明                                      |
402| -------- | ------------------------------ | ---- | ----------------------------------------- |
403| key      | string                         | 是   | 要获取的存储key名称,不能为空。           |
404| defValue | [ValueType](#valuetype)        | 是   | 默认返回值。支持number、string、boolean。 |
405| callback | AsyncCallback<ValueType> | 是   | 回调函数。                                |
406
407**示例:**
408
409```js
410storage.get('startup', 'default', function(err, value) {
411    if (err) {
412        console.info("Failed to get the value of startup with err: " + err);
413        return;
414      }
415    console.info("The value of startup is " + value);
416})
417```
418
419
420### get
421
422get(key: string, defValue: ValueType): Promise<ValueType>
423
424获取键对应的值,如果值为null或者非默认值类型,返回默认数据defValue。使用Promise方式返回结果,此方法为异步方法。
425
426**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
427
428**参数:**
429
430| 参数名   | 类型                    | 必填 | 说明                                      |
431| -------- | ----------------------- | ---- | ----------------------------------------- |
432| key      | string                  | 是   | 要获取的存储key名称,不能为空。           |
433| defValue | [ValueType](#valuetype) | 是   | 默认返回值。支持number、string、boolean。 |
434
435**返回值:**
436
437| 类型                     | 说明                            |
438| ------------------------ | ------------------------------- |
439| Promise<ValueType> | Promise实例,用于异步获取结果。 |
440
441**示例:**
442
443```js
444let promiseget = storage.get('startup', 'default');
445promiseget.then((value) => {
446    console.info("The value of startup is " + value)
447}).catch((err) => {
448    console.info("Failed to get the value of startup with err: " + err);
449})
450```
451
452
453### putSync
454
455putSync(key: string, value: ValueType): void
456
457首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。
458
459**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
460
461**参数:**
462
463| 参数名 | 类型                    | 必填 | 说明                                      |
464| ------ | ----------------------- | ---- | ----------------------------------------- |
465| key    | string                  | 是   | 要修改的存储的key,不能为空。             |
466| value  | [ValueType](#valuetype) | 是   | 存储的新值。支持number、string、boolean。 |
467
468**示例:**
469
470```js
471storage.putSync('startup', 'auto');
472```
473
474
475### put
476
477put(key: string, value: ValueType, callback: AsyncCallback<void>): void
478
479首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。使用callback方式返回结果,此方法为异步方法。
480
481**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
482
483**参数:**
484
485| 参数名   | 类型                      | 必填 | 说明                                      |
486| -------- | ------------------------- | ---- | ----------------------------------------- |
487| key      | string                    | 是   | 要修改的存储的key,不能为空。             |
488| value    | [ValueType](#valuetype)   | 是   | 存储的新值。支持number、string、boolean。 |
489| callback | AsyncCallback<void> | 是   | 回调函数。                                |
490
491**示例:**
492
493```js
494storage.put('startup', 'auto', function (err) {
495    if (err) {
496        console.info("Failed to put the value of startup with err: " + err);
497        return;
498    }
499    console.info("Succeeded in putting the value of startup.");
500})
501```
502
503
504### put
505
506put(key: string, value: ValueType): Promise<void>
507
508首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。使用Promise方式返回结果,此方法为异步方法。
509
510**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
511
512**参数:**
513
514| 参数名 | 类型                    | 必填 | 说明                                      |
515| ------ | ----------------------- | ---- | ----------------------------------------- |
516| key    | string                  | 是   | 要修改的存储的key,不能为空。             |
517| value  | [ValueType](#valuetype) | 是   | 存储的新值。支持number、string、boolean。 |
518
519**返回值:**
520
521| 类型                | 说明                        |
522| ------------------- | --------------------------- |
523| Promise<void> | Promise实例,用于异步处理。 |
524
525**示例:**
526
527```js
528let promiseput = storage.put('startup', 'auto');
529promiseput.then(() => {
530    console.info("Succeeded in putting the value of startup.");
531}).catch((err) => {
532    console.info("Failed to put the value of startup with err: " + err);
533})
534```
535
536
537### hasSync
538
539hasSync(key: string): boolean
540
541检查存储对象是否包含名为给定key的存储。
542
543**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
544
545**参数:**
546
547| 参数名 | 类型   | 必填 | 说明                            |
548| ------ | ------ | ---- | ------------------------------- |
549| key    | string | 是   | 要获取的存储key名称,不能为空。 |
550
551**返回值:**
552
553| 类型    | 说明                                  |
554| ------- | ------------------------------------- |
555| boolean | true 表示存在,false表示不存在。 |
556
557**示例:**
558
559```js
560let isExist = storage.hasSync('startup');
561if (isExist) {
562    console.info("The key of startup is contained.");
563}
564```
565
566
567### has
568
569has(key: string, callback: AsyncCallback<boolean>): boolean
570
571检查存储对象是否包含名为给定key的存储。使用callback方式返回结果,此方法为异步方法。
572
573**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
574
575**参数:**
576
577| 参数名   | 类型                         | 必填 | 说明                            |
578| -------- | ---------------------------- | ---- | ------------------------------- |
579| key      | string                       | 是   | 要获取的存储key名称,不能为空。 |
580| callback | AsyncCallback<boolean> | 是   | 回调函数。                      |
581
582**返回值:**
583
584| 类型    | 说明                            |
585| ------- | ------------------------------- |
586| boolean | true表示存在,false表示不存在。 |
587
588**示例:**
589
590```js
591storage.has('startup', function (err, isExist) {
592    if (err) {
593        console.info("Failed to check the key of startup with err: " + err);
594        return;
595    }
596    if (isExist) {
597        console.info("The key of startup is contained.");
598    }
599})
600```
601
602
603### has
604
605has(key: string): Promise<boolean>
606
607检查存储对象是否包含名为给定key的存储。使用Promise方式返回结果,此方法为异步方法。
608
609**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
610
611**参数:**
612
613| 参数名 | 类型   | 必填 | 说明                            |
614| ------ | ------ | ---- | ------------------------------- |
615| key    | string | 是   | 要获取的存储key名称,不能为空。 |
616
617**返回值:**
618
619| 类型                   | 说明                        |
620| ---------------------- | --------------------------- |
621| Promise<boolean> | Promise实例,用于异步处理。 |
622
623**示例:**
624
625```js
626let promisehas = storage.has('startup')
627promisehas.then((isExist) => {
628    if (isExist) {
629        console.info("The key of startup is contained.");
630    }
631}).catch((err) => {
632    console.info("Failed to check the key of startup with err: " + err);
633})
634```
635
636
637### deleteSync
638
639deleteSync(key: string): void
640
641从存储对象中删除名为给定key的存储。
642
643**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
644
645**参数:**
646
647| 参数名 | 类型   | 必填 | 说明                              |
648| ------ | ------ | ---- | --------------------------------- |
649| key    | string | 是   | 要获取的存储key名称。它不能为空。 |
650
651**示例:**
652
653```js
654 storage.deleteSync('startup');
655```
656
657
658### delete
659
660delete(key: string, callback: AsyncCallback<void>): void
661
662从存储对象中删除名为给定key的存储。使用callback方式返回结果,此方法为异步方法。
663
664**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
665
666**参数:**
667
668| 参数名   | 类型                      | 必填 | 说明                            |
669| -------- | ------------------------- | ---- | ------------------------------- |
670| key      | string                    | 是   | 要获取的存储key名称,不能为空。 |
671| callback | AsyncCallback<void> | 是   | 回调函数。                      |
672
673**示例:**
674
675```js
676storage.delete('startup', function (err) {
677    if (err) {
678        console.info("Failed to delete startup key failed err: " + err);
679        return;
680    }
681    console.info("Succeeded in deleting startup key.");
682})
683```
684
685
686### delete
687
688delete(key: string): Promise<void>
689
690从存储对象删除名为给定key的存储。使用Promise方式返回结果,此方法为异步方法。
691
692**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
693
694**参数:**
695
696| 参数名 | 类型   | 必填 | 说明                  |
697| ------ | ------ | ---- | --------------------- |
698| key    | string | 是   | 要获取的存储key名称。 |
699
700**返回值:**
701
702| 类型                | 说明                        |
703| ------------------- | --------------------------- |
704| Promise<void> | Promise实例,用于异步处理。 |
705
706**示例:**
707
708```js
709let promisedel = storage.delete('startup')
710promisedel.then(() => {
711    console.info("Succeeded in deleting startup key.");
712}).catch((err) => {
713    console.info("Failed to delete startup key failed err: " + err);
714})
715```
716
717
718### flushSync
719
720flushSync(): void
721
722将当前storage对象中的修改保存到当前的storage,并同步存储到文件中。
723
724**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
725
726**示例:**
727
728```js
729storage.flushSync();
730```
731
732
733### flush
734
735flush(callback: AsyncCallback<void>): void
736
737将当前storage对象中的修改保存到当前的storage,并异步存储到文件中。使用callback方式返回结果,此方法为异步方法。
738
739**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
740
741**参数:**
742
743| 参数名   | 类型                      | 必填 | 说明       |
744| -------- | ------------------------- | ---- | ---------- |
745| callback | AsyncCallback<void> | 是   | 回调函数。 |
746
747**示例:**
748
749```js
750storage.flush(function (err) {
751    if (err) {
752        console.info("Failed to flush to file with err: " + err);
753        return;
754    }
755    console.info("Succeeded in flushing to file.");
756})
757```
758
759
760### flush
761
762flush(): Promise<void>
763
764将当前storage对象中的修改保存到当前的storage,并异步存储到文件中。使用Promise方式返回结果,此方法为异步方法。
765
766**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
767
768**返回值:**
769
770| 类型                | 说明                        |
771| ------------------- | --------------------------- |
772| Promise<void> | Promise实例,用于异步处理。 |
773
774**示例:**
775
776```js
777let promiseflush = storage.flush();
778promiseflush.then(() => {
779    console.info("Succeeded in flushing to file.");
780}).catch((err) => {
781    console.info("Failed to flush to file with err: " + err);
782})
783```
784
785
786### clearSync
787
788clearSync(): void
789
790清除此存储对象中的所有存储。
791
792**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
793
794**示例:**
795
796```js
797storage.clearSync();
798```
799
800
801### clear
802
803clear(callback: AsyncCallback<void>): void
804
805清除此存储对象中的所有存储。使用callback方式返回结果,此方法为异步方法。
806
807**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
808
809**参数:**
810
811| 参数名   | 类型                      | 必填 | 说明       |
812| -------- | ------------------------- | ---- | ---------- |
813| callback | AsyncCallback<void> | 是   | 回调函数。 |
814
815**示例:**
816
817```js
818storage.clear(function (err) {
819    if (err) {
820        console.info("Failed to clear the storage with err: " + err);
821        return;
822    }
823    console.info("Succeeded in clearing the storage.");
824})
825```
826
827
828### clear
829
830clear(): Promise<void>
831
832清除此存储对象中的所有存储。使用Promise方式返回结果,此方法为异步方法。
833
834**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
835
836**返回值:**
837| 类型                | 说明                        |
838| ------------------- | --------------------------- |
839| Promise<void> | Promise实例,用于异步处理。 |
840
841**示例:**
842
843```js
844let promiseclear = storage.clear();
845promiseclear.then(() => {
846    console.info("Succeeded in clearing the storage.");
847}).catch((err) => {
848    console.info("Failed to clear the storage with err: " + err);
849})
850```
851
852
853### on('change')
854
855on(type: 'change', callback: Callback<StorageObserver>): void
856
857订阅数据变更者类需要实现StorageObserver接口,订阅的key的值发生变更后,在执行flush/flushSync方法后,callback方法会被回调。
858
859**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
860
861**参数:**
862
863| 参数名   | 类型                                                | 说明                                     |
864| -------- | --------------------------------------------------- | ---------------------------------------- |
865| type     | string                                              | 事件类型,固定值'change',表示数据变更。 |
866| callback | Callback<[StorageObserver](#storageobserver)> | 回调对象实例。                           |
867
868**示例:**
869
870```js
871var observer = function (key) {
872    console.info("The key of " + key + " changed.");
873}
874storage.on('change', observer);
875storage.putSync('startup', 'auto');
876storage.flushSync();  // observer will be called.
877```
878
879
880### off('change')
881
882off(type: 'change', callback: Callback<StorageObserver>): void
883
884当不再进行订阅数据变更时,使用此接口取消订阅。
885
886**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
887
888**参数:**
889
890| 参数名   | 类型                                                | 说明                                     |
891| -------- | --------------------------------------------------- | ---------------------------------------- |
892| type     | string                                              | 事件类型,固定值'change',表示数据变更。 |
893| callback | Callback<[StorageObserver](#storageobserver)> | 需要取消的回调对象实例。                 |
894
895**示例:**
896
897```js
898var observer = function (key) {
899    console.info("The key of " + key + " changed.");
900}
901storage.off('change', observer);
902```
903
904
905## StorageObserver
906
907**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
908
909| 名称 | 参数类型 | 必填 | 说明             |
910| ---- | -------- | ---- | ---------------- |
911| key  | string   | 否   | 变更的数据内容。 |
912
913## ValueType
914
915用于表示允许的数据字段类型。
916
917**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
918
919| 类型    | 说明                 |
920| ------- | -------------------- |
921| number  | 表示值类型为数字。   |
922| string  | 表示值类型为字符。   |
923| boolean | 表示值类型为布尔值。 |