Как извлечь данные из ответа сервиса, если он претендует на нулевое значение? - PullRequest
0 голосов
/ 04 марта 2019

Я новичок в создании приложения для электронной коммерции Angular с бэкендом в Node.js.Мне нужна страница с данными, которые обновляются в режиме реального времени.Я создал объект поведения для данных и создал службу следующим образом:

    export class OrderService {
  private orders: BehaviorSubject<any>;
  public timeInSeconds = 10;

  constructor(private http: Http) { 
    this.orders = new BehaviorSubject<any>(null);
    setInterval(() => {
      this.fetchOrders();
    }, this.timeInSeconds * 1000);
    this.fetchOrders();
  }

  private fetchOrders() {
    this.http.get('/getorders').toPromise().then((resData) => {
      this.orders.next(resData);
    });
  }

  getOrders(): Observable<any> {
    return this.orders;
  }
}

Затем компонент вызывает эту функцию get:

getorders() {
    this.getdata.getOrders()
      .subscribe (res => {
        this.orders = res.json();
      });
  }

Даже если ответ получен правильно,Я не могу извлечь данные из него, получаю ошибку "res is null".Я предполагаю, что я делаю что-то не так.Удаление парсинга json или вызов res.body тоже не помогают.Это зарегистрированный ответ:

 Object { _body: "[{\"id\":2,\"date\":\"0000-00-00\",\"name\":\"Olga\",\"email\":\"email@mail.com\",\"address\":\"1 Street St.\",\"phone\":\"05454545454\",\"products\":\"[{\\\"id\\\":3,\\\"name\\\":\\\"שוקולד\\\",\\\"price\\\":10,\\\"img\\\":\\\"chocolate.jpg\\\",\\\"category\\\":\\\"sweets\\\",\\\"quantity\\\":4}]\"},{\"id\":3,\"date\":\"0000-00-00\",\"name\":\"o\",\"email\":\"email@mail.com\",\"address\":\"\",\"phone\":\"05454545454\",\"products\":\"[{\\\"id\\\":7,\\\"name\\\":\\\"עיתון\\\",\\\"price\\\":20,\\\"img\\\":\\\"newspaper.jpg\\\",\\\"category\\\":\\\"others\\\",\\\"quantity\\\":1}]\"}]", status: 200, ok: true, statusText: "OK", headers: {…}, type: 2, url: "http://localhost:8080/getorders" }

Любая помощь или совет будут оценены.

...