Probleme mit der Funktion forEach mit HTTP-Anfragen.Http Anfrage in forEach Funktion. Angular2
Ich habe eine _watchlistElements
Variable, die Daten gilt:
[{"xid":"DP_049908","name":"t10"},{"xid":"DP_928829","name":"t13"},{"xid":"DP_588690","name":"t14"},{"xid":"DP_891890","name":"t16"},{"xid":"DP_693259","name":"t17"}]
Jetzt Im eine Funktion zu machen, die Daten vom Server für jede dieser xid
Elemente herunterladen werden:
private download() {
this._watchlistElements.forEach(v =>
this.http.get('http://localhost:8080/getValue/' + v.xid)
.subscribe(res => this._values = res.json()));
}
Es muss Daten als Objekt für jeden v.xid
Wert herunterladen und in der Variablen _values
speichern.
private _values: Array<WatchlistComponent> = [];
Aber irgendwie Winkel kehrt ein Fehler mit v.xid
Element. Es sieht diese Variable nicht. Aber es ist irgendwie seltsam, denn wenn ich es nur in der Konsole mache, meine ich: Speichern Sie das JSON in einer Variablen und verwenden Sie für jede Funktion v.xid
Elemente, alles funktioniert gut.
ERROR in [Standard] C: \ Users \ src \ app \ appBody \ Merken \ watchl ist.component.ts: 51: 115 Property 'xid' existiert nicht auf Typ 'WatchlistComponent'.
Die xid
existiert ... aber innerhalb der _watchlistElements
die asynchonously die Daten herunterlädt ...
Ich bin nicht 100% sicher, dass diese Methode richtig ist, aber wenn Sie irgendwelche Ideen, wie man repariere es, bitte sag es mir.
Wenn ich meinen Code beheben, wie Sie geschrieben haben, ich bin 4 Fehler bekommen. '=' erwartet, kann den Namen 'as',', 'expected nicht finden und' xid' existiert nicht in WatchlistComponent. Was meinst du mit dem Ausdruck '_values' Array? Meinst du "console.log"? Ich habe keine Schnittstellen innerhalb der WatchlistComponent. –
ja, 'console.log (this._values)' '; Ist Zeile 51 von watchlist.component.ts 'this.http.get ('http: // localhost: 8080/getValue /' + v.xid)'? – joshvito
Ich wette, 'console.log' wird wegen asynchroner Anfrage nicht funktionieren. Und über deine Frage, ja, es sieht so aus, als hättest du geschrieben. –