Нормальный массив в Observable - PullRequest
0 голосов
/ 17 мая 2019

Я использую Ionic 4. У меня есть массив 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 голосов
/ 18 мая 2019

Попробуйте использовать 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);
  }

}

Более подробную информацию вы можете найти в документации из .

...