Ich versuche, den Wert erhalten von http
Anfrage an eine lokale deklarieren Variable userLat & userLng
und Zugriff auf die Variablen von einer anderen Funktion, aber bekommen undefined
als Ergebnis. Die userLat & userLng
wurde erfolgreich abgerufen. Versucht mit return this.userLat & this.userLng
aber fehlgeschlagen, bitte weisen Sie darauf hin, wenn ich einen Fehler mache.Wie übergibt man den Wert von Funktion zu Funktion?
Zuvor mit der Verwendung arbeiten versprochen. Hatte viele Kopfschmerzen. Gibt es eine einfachere Möglichkeit, die Daten zu erhalten?
Jede Hilfe und Vorschläge sind willkommen. Vielen Dank im Voraus :)
map.ts
export class GoogleMapsProvider {
userLat:any;
userLng:any;
constructor(
public http: Http,
) {
}
load(){
this.http.post()
.map(res => res.json())
.subscribe(data =>
{
this.userDetails = data[0];
this.userLat = this.userDetails.ListerLat;
this.userLng = this.userDetails.ListerLng;
console.log(this.userLat); // successfully return userLat
console.log(this.userLng); // successfully return userLng
//tried return this.userLat & this.userLng
}
}
calculate(locations) {
console.log(this.userLat); //returned undefined
console.log(this.userLng); //returned undefined
let usersLocation = {
lat: this.userLat,
lng: this.userLng
};
}
mit Versprechen
load(){
if(this.data){
return Promise.resolve(this.data);
}
return new Promise(resolve => {
this.http.get('../example.json').map(res => res.json()).subscribe(data => {
this.data = data;
resolve(this.data);
});
});
}
Und wie nennst du 'calculate' Funktion? – MysterX
ok. Das tut mir leid. Wird in Zukunft Notiz nehmen. Ich habe die 'calculate' Funktion in einer anderen Funktion aufgerufen. Zuvor arbeitete ich mit hardcoded 'userLat & userLng' es funktioniert gut. Jetzt möchte ich es auf dynamische Daten anwenden. – aaa
Das scheint mir ein Problem mit dem Oszilloskop zu sein, Sie sollten es verwenden, lassen Sie _self = das; in Ihrer Lademethode. Und dann userLng über _self.userLng = value; – user3492940