首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查存储是否为空Ionic 4存储插件

检查存储是否为空Ionic 4存储插件
EN

Stack Overflow用户
提问于 2019-03-25 17:12:17
回答 2查看 2.5K关注 0票数 2

我是Angular/TypeSript/Ionic4的新手,所以这可能有点傻,但我正在使用离子存储插件,你可以在这个页面"https://ionicframework.com/docs/building/storage“中找到它。我也遇到了不少麻烦。文档很清楚,但太简单了。

我需要检查我的存储空间是否为空,还需要查看存储空间的内容。

首先,我尝试了一下它的长度,期望它返回一个数字,但在服务上使用了以下代码:

代码语言:javascript
复制
getLenght(){
    return this.storage.length().then((res) => {
      return res;
    });
}

在我的页面上的代码中,我得到了一个对象结果:

代码语言:javascript
复制
   storageLength : any; // it would give me error as a Number
clearStorage() {
    this.dataStorageService.clear();
    this.storageLength = this.dataStorageService.getLenght(); // returns object promise
    alert(JSON.stringify(this.storageLength)); 
//{"__zone_symbol__state":null,"__zone_symbol__value":[]}

然后我试着这样做,但由于这个错误,我甚至不能运行它:

代码语言:javascript
复制
this.storage.get("qrCodeData").then( this.storage.get("qrCodeData") =>{}).catch(err=>{
    console.log("Your data don't exist and returns error in catch: " + JSON.stringify(err);
    });

错误是“'Promise‘类型的参数不能赋值给'(value: any) => any’类型的参数。'Promise‘类型不提供与签名'(value: any):any’匹配的签名”

所以不确定如何验证存储是否为emtpy,因为我遇到了各种问题,我在这里遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-25 17:27:33

您可以尝试如下所示:

代码语言:javascript
复制
getLength() { 
 return new Promise(resolve => {
      this.storage.get('qrCodeData').then((data) => {
        if(data){
          resolve(data);
        }    
      });    
    })    
} 

如果数据是空的,数据将是未定义的,因此您可以检查它。

票数 4
EN

Stack Overflow用户

发布于 2019-03-25 23:40:47

目前还不清楚你到底在存储什么,也不清楚你到底想要实现什么。也就是说,在我看来,如果你使用async/await,处理从这个存储模块返回的promise信息要干净得多。下面是一个示例。

代码语言:javascript
复制
let qrInfo = await this.getQrCodeData();
console.log(`Here is the result: ${qrInfo}`);  

...

async getQrCodeData(): Promise<string> {    
    await this.storage.ready();
    let qrCodeInfo = await this.storage.get("qrCodeData");
    return (qrCodeInfo) ? JSON.stringify(qrCodeInfo) : "";
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55334456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档