RXJS ERROR TypeError: «this._subscribe не является функцией» - PullRequest
0 голосов
/ 27 декабря 2018

Я получаю следующую ошибку и не могу ее устранить.

ОШИБКА TypeError: "this._subscribe не является функцией"

Здесь также является полной трассировкой стека в виде изображения.

Что я пытаюсь достичь У меня есть класс с именем ChargingStation , который имеет несколько атрибутов ивыглядит как это .Экземпляры этого класса должны быть получены из моего API.Эта функциональность предоставляется классом ChargingStationService .Соответствующий метод в классе ChargingStationService показан здесь .В настоящее время я просто пытаюсь доставить поддельную Observable обратно.Метод getChargingStation будет вызываться из моего ChargingStationComponent , который выглядит как this .Полученный объект ChargingStation должен отображаться в представлении компонентов через DataBinding.Но DataBinding не работает / ничего не отображается.Раньше он работал со службой, возвращающей только объект типа ChargingStation , а не Observable

Как выглядит поток приложения

В методе ngOnInit ChargingStationComponent он получает идентификатор, указанный в url /charge-station / {id} .

  ngOnInit() {
    this.getChargingStation(+this.route.snapshot.paramMap.get('id'));
  }

С этим идентификатором вызывается метод getChargingStation (id) .

  getChargingStation(id: number): void {
    console.log(this.chargingStationService.getChargingStation(id));
    this.chargingStationService.getChargingStation(id)
      .subscribe(chargingStation => (this.chargingStation = chargingStation));
  }

Этот метод внутренне использует внедренный ChargingStationService , который будет извлекать ChargingStations из API в будущем.В настоящее время этот метод выглядит следующим образом и должен возвращать поддельную наблюдаемую зарядную станцию.

 getChargingStation(id: number): Observable<ChargingStation> {
    let searchedChargingStation= new ChargingStation(
      id,
      false,
      0.37,
      this.plugs,
      0.0,
      0.0,
      "Store Street, R802"
    );
    let observableSearchedChargingStation = Observable.create(searchedChargingStation);
    console.log(observableSearchedChargingStation);
    return observableSearchedChargingStation;
  }

То, что я считаю неправильным Я думаю, что метод Observable.create может быть неправильным выбором, но я не нашел ничего более подходящего.

Надеюсь, некоторые из вас могут мне помочь :) Большое спасибо и счастливого Рождества

Привет Ян

1 Ответ

0 голосов
/ 27 декабря 2018

Вы не передадите новое значение наблюдателю, как только вы его создали:)

вместо

let observableSearchedChargingStation = Observable.create(searchedChargingStation);

do:

Observable.create((observer) => {
    observer.next(searchedChargingStation);
});

и вашкод должен работать так, как он есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...