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