试图从存储中获取数据,但它返回空数组

时间:2018-03-19 15:43:47

标签: angular ionic-framework

我使用自定义密钥存储数据。我想返回以id KEY-开头的所有数据,因此我遍历所有数据和存储,并将匹配的数据推送到数组中。我可以看到数据被推送到data[] 但是当我在我的组件中调用getData()时,它返回一个空数组。我做错了什么?

storage.ts

getData(): any {
  this.storage.ready().then(() =>
  {
    let data = [];
    this.storage.forEach((value, key, index) =>
    {
      if (value.id.startsWith("KEY-")) {
        data.push(value);
        console.log(data);
      }
    });
    return data;
  });
}

component.ts

ionViewDidLoad() {
    this.data = this.storage.geData(); 
}

我也尝试过这种方式

ionViewDidLoad() {
    this.storage.getData().then(data => console.log(data));
 }

1 个答案:

答案 0 :(得分:2)

因此,只需从您的函数返回一个承诺,然后尝试使用此承诺解析data

getData(): any {
  return this.storage.ready().then(() =>
  {
    let data = [];
    this.storage.forEach((value, key, index) =>
    {
      if (value.id.startsWith("KEY-")) {
        data.push(value);
        console.log(data);
      }
    });
    return data;
  });
}