Winkel 4, Wie man richtig eine void zurückgeben beobachten

In meinem Winkel 4 Anwendung habe ich eine Methode haben, um eine beobachtbare,
diese Methode haben 3 Bedingungen, ersten und zweiten Bedingungen machen einen get-Aufruf, aber der Dritte Bedingungen haben nichts zu tun und ich habe in diesem Fall, um eine observable zu, denn diese Methode ist der erste Teil einer .flatmap operator, also um die Kette der zweite Teil der flatmap ich brauche ein beobachten aus dem ersten Teil.

Ich versuche mit: return new Observable<void>(); aber ich habe diesen Fehler:

FEHLER TypeError: Cannot read property 'abonnieren' undefined

Dies ist die erste Methode, die einen Dienst aufrufen um die Daten zu laden.

loadModelData() {
      this.customerService.getModelDetail(this.code)
        .subscribe(response => {
          this.selected = response.body as Customer;
        });
    }
  }

Dies ist die service-Methode, die zur Kette 2 Anrufe.

getModelDetail(code) {

    const params = new HttpParams().set('projection', 'withBalance');

    return this.endPointUrlService.loadMaps(this.entityLink)

      .flatMap((res) => {
        return this.http.get(this.endPointUrlService.cutLinks(
          this.endPointUrlService.map.get('customers')) + '/' + code, {observe: 'response', params: params})
          .map((response) => <any>response);
      })
  }

Ist und diese Methoden von einem support-service namens endPointUrlService, checkIfMapIsReady() ist die Methode, die eine void zurückgeben, erkennbar im Dritten Fall

  loadMaps(entityLink: EntityLink[]): Observable<void> {
    console.log(entityLink);

    for (const i in entityLink) {
      if (entityLink.hasOwnProperty(i)) {
      return this.checkIfMapIsReady(entityLink[i].name, entityLink[i].searchMap, entityLink[i].endPoints[0])
      }
    }
  }


  public checkIfMapIsReady(modelName: string, mapName: string, endPoints: string) {

    if (this.map.get(modelName) === undefined) {
      console.log('endpoint url service All maps undefined ' + modelName);
      return this.getLinks(modelName, this.mapNames.get(mapName), false)
    } else {
      console.log('endpoint url service Populate only ' + mapName);
      if (this.mapNames.get(mapName).get(endPoints) === undefined) {
      return  this.getLinks(modelName, this.mapNames.get(mapName), true)
      } else {
        return new Observable<void>();
      }
    }
  }

InformationsquelleAutor Alessandro | 2017-11-05

Schreibe einen Kommentar