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 | 表示值类型为布尔值。 |