普通数组到可观察

时间:2019-05-17 19:18:19

标签: typescript ionic-framework local-storage observable ionic4

我正在使用Ionic4。我有一个Items数组

private items: Item[];

在此类的构造函数中,我使用服务从本地存储获取数据

this.dataService.getData().subscribe((data) => {
    this.items = data;
});

问题是在第一次加载中将“ this.items”设置为未定义。 服务中的代码是这样的:

export class ItemService {

  data: Item[];

  constructor(private storage: Storage) {
    this.storage.get('listData').then((val) => {
      this.data = JSON.parse(val);
    });
  }

  saveData(dataItem: Item) {
    this.data.push(dataItem);
    //console.log(this.data);
    this.storage.set('listData',JSON.stringify(this.data));
  }

  getData() {
    return of(this.data);
  }

}

感谢您的帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

尝试使用from

// RxJS v6+
import { from } from 'rxjs';

export class ItemService {

  data: Item[] = [];

  constructor(private storage: Storage) {
    this.storage.get('listData').then((val) => {
      this.data = JSON.parse(val);
    });
  }

  saveData(dataItem: Item) {
    this.data.push(dataItem);
    //console.log(this.data);
    this.storage.set('listData',JSON.stringify(this.data));
  }

  getData() {
    return from(this.data);
  }

}

您可以查看from文档以了解更多详细信息。