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