js-apis-data-storage.md 21.2 KB
Newer Older
Z
zengyawen 已提交
1
# 轻量级存储
Z
zengyawen 已提交
2 3 4 5

轻量级存储为应用提供key-value键值型的文件数据处理能力,支持应用对数据进行轻量级存储及查询。数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型。


Z
zengyawen 已提交
6
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
7
> 从API Version 9开始,该接口不再维护,推荐使用新接口 [@ohos.data.preferences](js-apis-data-preferences.md)
Z
zengyawen 已提交
8 9 10


## 导入模块
Z
zengyawen 已提交
11 12

```
Z
zengyawen 已提交
13
import dataStorage from '@ohos.data.storage'
Z
zengyawen 已提交
14 15
```

16
## 系统能力
17
SystemCapability.DistributedDataManager.Preferences.Core
18

Z
zengyawen 已提交
19 20 21 22 23 24 25 26 27 28


## 属性

| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| MAX_KEY_LENGTH | string | 是 | 否 | key的最大长度限制,大小为80字节。 |
| MAX_VALUE_LENGTH | string | 是 | 否 | string类型value的最大长度限制,大小为8192字节。 |


29
## dataStorage.getStorageSync<sup>(deprecated) </sup>
Z
zengyawen 已提交
30 31

getStorageSync(path: string): Storage
Z
zengyawen 已提交
32 33 34

读取指定文件,将数据加载到Storage实例,用于数据操作,此方法为同步方法。

Z
zengyawen 已提交
35 36 37 38 39 40 41 42 43 44 45 46 47 48
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [Storage](#storage) | 获取到要操作的Storage实例,用于进行数据存储操作。 |

- 示例:
  ```
  import dataStorage from '@ohos.data.storage'
  import featureAbility from '@ohos.ability.featureAbility'
49

50 51 52 53 54
  var context = featureAbility.getContext()
  var path = await context.getFilesDir()
  let storage = dataStorage.getStorageSync(path + '/mystore')
  storage.putSync('startup', 'auto')
  storage.flushSync()
Z
zengyawen 已提交
55 56 57
  ```


58
## dataStorage.getStorage<sup>(deprecated) </sup>
Z
zengyawen 已提交
59 60

getStorage(path: string, callback: AsyncCallback&lt;Storage&gt;): void
Z
zengyawen 已提交
61 62 63

读取指定文件,将数据加载到Storage实例,用于数据操作,使用callback形式返回结果。

Z
zengyawen 已提交
64 65 66 67 68 69 70 71 72 73
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |
  | callback | AsyncCallback&lt;[Storage](#storage)&gt; | 是 | 回调函数。 |

- 示例:
  ```
  import dataStorage from '@ohos.data.storage'
  import featureAbility from '@ohos.ability.featureAbility'
74

75 76 77 78 79 80 81 82 83 84
  var context = featureAbility.getContext()
  var path = await context.getFilesDir()
  dataStorage.getStorage(path + '/mystore', function (err, storage) {
      if (err) {
          console.info("Get the storage failed, path: " + path + '/mystore')
          return;
      }
      storage.putSync('startup', 'auto')
      storage.flushSync()
  })
Z
zengyawen 已提交
85 86 87
  ```


88
## dataStorage.getStorage<sup>(deprecated) </sup>
Z
zengyawen 已提交
89 90

getStorage(path: string): Promise&lt;Storage&gt;
Z
zengyawen 已提交
91 92 93

读取指定文件,将数据加载到Storage实例,用于数据操作,使用Promise方式作为异步方法。

Z
zengyawen 已提交
94 95 96 97 98 99 100 101 102 103 104 105 106 107
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;[Storage](#storage)&gt; | Promise实例,用于异步获取结果。 |

- 示例:
  ```
  import dataStorage from '@ohos.data.storage'
  import featureAbility from '@ohos.ability.featureAbility'
108

109 110 111 112 113 114 115 116 117
  var context = featureAbility.getContext()
  var path = await context.getFilesDir()
  let promise = dataStorage.getStorage(path + '/mystore')
  promise.then((storage) => {
      storage.putSync('startup', 'auto')
      storage.flushSync()
  }).catch((err) => {
      console.info("Get the storage failed, path: " + path + '/mystore')
  })
Z
zengyawen 已提交
118 119 120
  ```


121
## dataStorage.deleteStorageSync<sup>(deprecated) </sup>
Z
zengyawen 已提交
122 123

deleteStorageSync(path: string): void
Z
zengyawen 已提交
124 125 126

从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题,此方法为同步方法。

Z
zengyawen 已提交
127 128 129 130 131 132 133 134 135 136 137
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |

- 示例:
  ```
  dataStorage.deleteStorageSync(path + '/mystore')
  ```


138
## dataStorage.deleteStorage<sup>(deprecated) </sup>
Z
zengyawen 已提交
139 140

deleteStorage(path: string, callback: AsyncCallback&lt;void&gt;)
Z
zengyawen 已提交
141 142 143

从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题,使用callback方式作为异步方法。

Z
zengyawen 已提交
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |
  | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |

- 示例:
  ```
  dataStorage.deleteStorage(path + '/mystore', function (err) {
      if (err) {
          console.info("Deleted failed with err: " + err)
          return
      }
      console.info("Deleted successfully.")
  })
  ```


162
## dataStorage.deleteStorage<sup>(deprecated) </sup>
Z
zengyawen 已提交
163 164

deleteStorage(path: string): Promise&lt;void&gt;
Z
zengyawen 已提交
165 166 167

从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题,使用promise方式作为异步方法。

Z
zengyawen 已提交
168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。 |

- 示例:
  ```
  let promise = dataStorage.deleteStorage(path + '/mystore')
  promise.then(() => {
      console.info("Deleted successfully.")
  }).catch((err) => {
      console.info("Deleted failed with err: " + err)
  })
  ```


189
## dataStorage.removeStorageFromCacheSync<sup>(deprecated) </sup>
Z
zengyawen 已提交
190 191

removeStorageFromCacheSync(path: string): void
Z
zengyawen 已提交
192

Z
zengyawen 已提交
193
从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。
Z
zengyawen 已提交
194

Z
zengyawen 已提交
195
此方法为同步方法。
Z
zengyawen 已提交
196

Z
zengyawen 已提交
197 198 199 200 201 202 203 204 205 206 207
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |

- 示例:
  ```
  dataStorage.removeStorageFromCacheSync(path + '/mystore')
  ```


208
## dataStorage.removeStorageFromCache<sup>(deprecated) </sup>
Z
zengyawen 已提交
209 210

removeStorageFromCache(path: string, callback: AsyncCallback&lt;Storage&gt;): void
Z
zengyawen 已提交
211

Z
zengyawen 已提交
212
从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。
Z
zengyawen 已提交
213

Z
zengyawen 已提交
214
此方法为异步方法。
Z
zengyawen 已提交
215

Z
zengyawen 已提交
216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |
  | callback | AsyncCallback&lt;[Storage](#storage)&gt; | 是 | 回调函数。 |

- 示例:
  ```
  dataStorage.removeStorageFromCache(path + '/mystore', function (err) {
      if (err) {
          console.info("Removed storage from cache failed with err: " + err)
          return
      }
      console.info("Removed storage from cache successfully.")
  })
  ```


234
## dataStorage.removeStorageFromCache<sup>(deprecated) </sup>
Z
zengyawen 已提交
235 236

removeStorageFromCache(path: string): Promise&lt;void&gt;
Z
zengyawen 已提交
237

Z
zengyawen 已提交
238
从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。
Z
zengyawen 已提交
239 240 241

此方法为异步方法。

Z
zengyawen 已提交
242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。 |

- 示例:
  ```
  let promise = dataStorage.removeStorageFromCache(path + '/mystore')
  promise.then(() => {
      console.info("Removed storage from cache successfully.")
  }).catch((err) => {
      console.info("Removed storage from cache failed with err: " + err)
  })
  ```


263
## Storage<sup>(deprecated) </sup>
Z
zengyawen 已提交
264

Z
zengyawen 已提交
265
提供获取和修改存储数据的接口。
Z
zengyawen 已提交
266 267


268
### getSync<sup>(deprecated) </sup>
Z
zengyawen 已提交
269 270

getSync(key: string, defValue: ValueType): ValueType
Z
zengyawen 已提交
271 272

获取键对应的值,如果值为null或者非默认值类型,返回默认数据。
Z
zengyawen 已提交
273

Z
zengyawen 已提交
274
此方法为同步方法。
Z
zengyawen 已提交
275

Z
zengyawen 已提交
276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。它不能为空。 |
  | defValue | ValueType | 是 | 给定key的存储不存在,则要返回的默认值。支持number、string、boolean。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | ValueType | 键对应的值,如果值为null或者非默认值类型,返回默认数据。 |

- 示例:
  ```
  let value = storage.getSync('startup', 'default')
  console.info("The value of startup is " + value)
  ```


294
### get<sup>(deprecated) </sup>
Z
zengyawen 已提交
295 296

get(key: string, defValue: ValueType, callback: AsyncCallback&lt;ValueType&gt;): void
Z
zengyawen 已提交
297 298

获取键对应的值,如果值为null或者非默认值类型,返回默认数据。
Z
zengyawen 已提交
299 300 301

此方法为异步方法。

Z
zengyawen 已提交
302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。它不能为空。 |
  | defValue | ValueType | 是 | 默认返回值。支持number、string、boolean。 |
  | callback | AsyncCallback&lt;ValueType&gt; | 是 | 回调函数。 |

- 示例:
  ```
  storage.get('startup', 'default', function(err, value) {
      if (err) {
          console.info("Get the value of startup failed with err: " + err)
          return
      }
      console.info("The value of startup is " + value)
  })
  ```


321
### get<sup>(deprecated) </sup>
Z
zengyawen 已提交
322 323

get(key: string, defValue: ValueType): Promise&lt;ValueType&gt;
Z
zengyawen 已提交
324

Z
zengyawen 已提交
325
获取键对应的值,如果值为null或者非默认值类型,返默认数据。
Z
zengyawen 已提交
326

Z
zengyawen 已提交
327
此方法为异步方法。
Z
zengyawen 已提交
328

Z
zengyawen 已提交
329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350
- **参数:**
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。它不能为空。 |
  | defValue | ValueType | 是 | 默认返回值。支持number、string、boolean。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;ValueType&gt; | Promise实例,用于异步获取结果。 |

- 示例:
  ```
  let promise = storage.get('startup', 'default')
  promise.then((value) => {
      console.info("The value of startup is " + value)
  }).catch((err) => {
      console.info("Get the value of startup failed with err: " + err)
  })
  ```


351
### putSync<sup>(deprecated) </sup>
Z
zengyawen 已提交
352 353

putSync(key: string, value: ValueType): void
Z
zengyawen 已提交
354

Z
zengyawen 已提交
355
首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。
Z
zengyawen 已提交
356 357 358

此方法为同步方法。

Z
zengyawen 已提交
359 360 361 362 363 364 365 366 367 368 369 370
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要修改的存储的key。它不能为空。 |
  | value | ValueType | 是 | 存储的新值。支持number、string、boolean。 |

- 示例:
  ```
  storage.putSync('startup', 'auto')
  ```


371
### put<sup>(deprecated) </sup>
Z
zengyawen 已提交
372 373

put(key: string, value: ValueType, callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
374

Z
zengyawen 已提交
375
首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。
Z
zengyawen 已提交
376

Z
zengyawen 已提交
377
此方法为异步方法。
Z
zengyawen 已提交
378

Z
zengyawen 已提交
379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要修改的存储的key。它不能为空。 |
  | value | ValueType | 是 | 存储的新值。支持number、string、boolean。 |
  | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |

- 示例:
  ```
  storage.put('startup', 'auto', function (err) {
      if (err) {
          console.info("Put the value of startup failed with err: " + err)
          return
      }
      console.info("Put the value of startup successfully.")
  })
  ```


398
### put<sup>(deprecated) </sup>
Z
zengyawen 已提交
399 400

put(key: string, value: ValueType): Promise&lt;void&gt;
Z
zengyawen 已提交
401

Z
zengyawen 已提交
402
首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。
Z
zengyawen 已提交
403 404 405

此方法为异步方法。

Z
zengyawen 已提交
406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要修改的存储的key。它不能为空。 |
  | value | ValueType | 是 | 存储的新值。支持number、string、boolean。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;void&gt; | Promise实例,用于异步处理。 |

- 示例:
  ```
  let promise = storage.put('startup', 'auto')
  promise.then(() => {
      console.info("Put the value of startup successfully.")
  }).catch((err) => {
      console.info("Put the value of startup failed with err: " + err)
  })
  ```


428
### hasSync<sup>(deprecated) </sup>
Z
zengyawen 已提交
429 430

hasSync(key: string): boolean
Z
zengyawen 已提交
431

Z
zengyawen 已提交
432
检查存储对象是否包含名为给定key的存储。
Z
zengyawen 已提交
433

Z
zengyawen 已提交
434
此方法为同步方法。
Z
zengyawen 已提交
435

Z
zengyawen 已提交
436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。它不能为空。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | boolean | true&nbsp;表示存在,false表示不存在。 |

- 示例:
  ```
  let isExist = storage.hasSync('startup')
  if (isExist) {
      console.info("The key of startup is contained.")
  }
  ```


455
### has<sup>(deprecated) </sup>
Z
zengyawen 已提交
456 457

has(key: string, callback: AsyncCallback&lt;boolean&gt;): boolean
Z
zengyawen 已提交
458

Z
zengyawen 已提交
459
检查存储对象是否包含名为给定key的存储。
Z
zengyawen 已提交
460 461 462

此方法为异步方法。

Z
zengyawen 已提交
463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称,不能为空。 |
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | boolean | true表示存在,false表示不存在。 |

- 示例:
  ```
  storage.has('startup', function (err, isExist) {
      if (err) {
          console.info("Check the key of startup failed with err: " + err)
          return
      }
      if (isExist) {
          console.info("The key of startup is contained.")
      }
  })
  ```


488
### has<sup>(deprecated) </sup>
Z
zengyawen 已提交
489 490

has(key: string): Promise&lt;boolean&gt;
Z
zengyawen 已提交
491

Z
zengyawen 已提交
492
检查存储对象是否包含名为给定key的存储。
Z
zengyawen 已提交
493

Z
zengyawen 已提交
494
此方法为异步方法。
Z
zengyawen 已提交
495

Z
zengyawen 已提交
496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。它不能为空。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;boolean&gt; | Promise实例,用于异步处理。 |

- 示例:
  ```
  let promise = storage.has('startup')
  promise.then((isExist) => {
      if (isExist) {
          console.info("The key of startup is contained.")
      }
  }).catch((err) => {
      console.info("Check the key of startup failed with err: " + err)
  })
  ```


519
### deleteSync<sup>(deprecated) </sup>
Z
zengyawen 已提交
520 521

deleteSync(key: string): void
Z
zengyawen 已提交
522

Z
zengyawen 已提交
523
从存储对象中删除名为给定key的存储。
Z
zengyawen 已提交
524 525 526

此方法为同步方法。

Z
zengyawen 已提交
527 528 529 530 531 532 533 534 535 536 537
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。它不能为空。 |

- 示例:
  ```
  storage.deleteSync('startup')
  ```


538
### delete<sup>(deprecated) </sup>
Z
zengyawen 已提交
539 540

delete(key: string, callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
541

Z
zengyawen 已提交
542
从存储对象中删除名为给定key的存储。
Z
zengyawen 已提交
543 544 545

此方法为异步方法。

Z
zengyawen 已提交
546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称,不能为空。 |
  | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |

- 示例:
  ```
  storage.delete('startup', function (err) {
      if (err) {
          console.info("Delete startup key failed with err: " + err)
          return
      }
      console.info("Deleted startup key successfully.")
  })
  ```


564
### delete<sup>(deprecated) </sup>
Z
zengyawen 已提交
565 566

delete(key: string): Promise&lt;void&gt;
Z
zengyawen 已提交
567 568

从存储对象删除名为给定key的存储。
Z
zengyawen 已提交
569

Z
zengyawen 已提交
570
此方法为异步方法。
Z
zengyawen 已提交
571

Z
zengyawen 已提交
572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;void&gt; | Promise实例,用于异步处理。 |

- 示例:
  ```
  let promise = storage.delete('startup')
  promise.then(() => {
      console.info("Deleted startup key successfully.")
  }).catch((err) => {
      console.info("Delete startup key failed with err: " + err)
  })
  ```


593
### flushSync<sup>(deprecated) </sup>
Z
zengyawen 已提交
594 595

flushSync(): void
Z
zengyawen 已提交
596

Z
zengyawen 已提交
597
将当前storage对象中的修改保存到当前的storage,并同步存储到文件中。
Z
zengyawen 已提交
598

Z
zengyawen 已提交
599 600
此方法为同步方法。

Z
zengyawen 已提交
601 602 603 604
- 示例:
  ```
  storage.flushSync()
  ```
Z
zengyawen 已提交
605 606


607
### flush<sup>(deprecated) </sup>
Z
zengyawen 已提交
608

Z
zengyawen 已提交
609
flush(callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
610 611

将当前storage对象中的修改保存到当前的storage,并异步存储到文件中。
Z
zengyawen 已提交
612 613 614

此方法为异步方法。

Z
zengyawen 已提交
615 616 617 618
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
Z
zengyawen 已提交
619

Z
zengyawen 已提交
620 621 622 623 624 625 626 627 628 629
- 示例:
  ```
  storage.flush(function (err) {
      if (err) {
          console.info("Flush to file failed with err: " + err)
          return
      }
      console.info("Flushed to file successfully.")
  })
  ```
Z
zengyawen 已提交
630 631


632
### flush<sup>(deprecated) </sup>
Z
zengyawen 已提交
633

Z
zengyawen 已提交
634
flush(): Promise&lt;void&gt;
Z
zengyawen 已提交
635

Z
zengyawen 已提交
636
将当前storage对象中的修改保存到当前的storage,并异步存储到文件中。
Z
zengyawen 已提交
637

Z
zengyawen 已提交
638
此方法为异步方法。
Z
zengyawen 已提交
639

Z
zengyawen 已提交
640 641 642 643
- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;void&gt; | Promise实例,用于异步处理。 |
Z
zengyawen 已提交
644

Z
zengyawen 已提交
645 646 647 648 649 650 651 652 653
- 示例:
  ```
  let promise = storage.flush()
  promise.then(() => {
      console.info("Flushed to file successfully.")
  }).catch((err) => {
      console.info("Flush to file failed with err: " + err)
  })
  ```
Z
zengyawen 已提交
654

Z
zengyawen 已提交
655

656
### clearSync<sup>(deprecated) </sup>
Z
zengyawen 已提交
657 658

clearSync(): void
Z
zengyawen 已提交
659 660 661 662 663

清除此存储对象中的所有存储。

此方法为同步方法。

Z
zengyawen 已提交
664 665 666 667
- 示例:
  ```
  storage.clearSync()
  ```
Z
zengyawen 已提交
668 669


670
### clear<sup>(deprecated) </sup>
Z
zengyawen 已提交
671

Z
zengyawen 已提交
672
clear(callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
673 674 675 676 677

清除此存储对象中的所有存储。

此方法为异步方法。

Z
zengyawen 已提交
678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |

- 示例:
  ```
  storage.clear(function (err) {
      if (err) {
          console.info("Clear to file failed with err: " + err)
          return
      }
      console.info("Cleared to file successfully.")
  })
  ```


695
### clear<sup>(deprecated) </sup>
Z
zengyawen 已提交
696 697

clear(): Promise&lt;void&gt;
Z
zengyawen 已提交
698 699 700 701 702

清除此存储对象中的所有存储。

此方法为异步方法。

Z
zengyawen 已提交
703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718
- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;void&gt; | Promise实例,用于异步处理。 |

- 示例:
  ```
  let promise = storage.clear()
  promise.then(() => {
      console.info("Cleared to file successfully.")
  }).catch((err) => {
      console.info("Clear to file failed with err: " + err)
  })
  ```


719
### on('change')<sup>(deprecated) </sup>
Z
zengyawen 已提交
720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741

on(type: 'change', callback: Callback&lt;StorageObserver&gt;): void

订阅数据变更者类需要实现StorageObserver接口,订阅的key的值发生变更后,在执行flush/flushSync方法后,callback方法会被回调。

- 参数:
  | 参数名 | 类型 | 说明 |
  | -------- | -------- | -------- |
  | type | string | 事件类型,固定值'change',表示数据变更。 |
  | callback | Callback&lt;[StorageObserver](#storageobserver)&gt; | 回调对象实例。 |

- 示例:
  ```
  var observer = function (key) {
      console.info("The key of " + key + " changed.")
  }
  storage.on('change', observer)
  storage.putSync('startup', 'auto')
  storage.flushSync()  // observer will be called.
  ```


742
### off('change')<sup>(deprecated) </sup>
Z
zengyawen 已提交
743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762

off(type: 'change', callback: Callback&lt;StorageObserver&gt;): void

当不再进行订阅数据变更时,使用此接口取消订阅。

- 参数:
  | 参数名 | 类型 | 说明 |
  | -------- | -------- | -------- |
  | type | string | 事件类型,固定值'change',表示数据变更。 |
  | callback | Callback&lt;[StorageObserver](#storageobserver)&gt; | 需要取消的回调对象实例。 |

- 示例:
  ```
  var observer = function (key) {
      console.info("The key of " + key + " changed.")
  }
  storage.off('change', observer)
  ```


763
## StorageObserver<sup>(deprecated) </sup>
Z
zengyawen 已提交
764

Z
zengyawen 已提交
765 766 767
| 名称 | 参数类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | string | 否 | 变更的数据内容。 |