Holen Sie string-Wert aus Beobachtbaren<string> in Maschinenschrift und Eckig

Möchte ich, um string-Wert aus Beobachtbaren und Wert aus der Funktion an den Aufrufer der Funktion.

ZB:
Ich habe die array-Schlüssel und würde gerne Hole den Wert (string), alle Schlüssel nacheinander und Anzeige von html-Komponenten die Menüleiste.

Hier sind die ts-Dateien:

- Schlüssel-Liste.Komponente.ts

public data = [ { 'key': 1, 'value' : this.getValue(1)}, 
                { 'key': 2, 'value' : this.getValue(2)}, 
                ...
              ];

private getValue(key: number): string {
    return this.keyService.find(key).subscribe(response => {
         return response;
    });
}

keyService.ts

...
public find(key:number): Observable<any> {
  return this.http.get(`/api/keys/${key}`).map(res => res.json() || {});
}
...

Möchte ich zur Anzeige aller Werte in der html-Komponente.
Aber immer Fehler in der Schlüssel-Liste.Komponente.ts, die beobachtbare in Typ string.

Wie kann ich lösen dieses Abonnement methodolgy und stellen Sie sicher, dass getValue sollte immer eine Zeichenkette zurückgeben, und machen es einwandfrei.

Einer der Lösung ist:

private getValue(key: number): string {
        let result: string;
        this.keyService.find(key).subscribe(res => result = res);
        return result;
    }

Die oben genannte Lösung funktioniert nicht immer.
Was sind die alternativen Lösung für diese Art von problem?

die Art und Weise Sie erklären data ist falsch. Das ist nicht, wie die Verwendung von asynchronen Funktionen.

InformationsquelleAutor virsha | 2017-08-12

Schreibe einen Kommentar