私のangular2アプリでは、私はそれに基づいてデバイスの緯度と経度を取得しようとしています。ここでの方法である:Typscript:変数の範囲
getGeoLocation(){
this._http.get(IP_to_GeoLocation_uri).subscribe(res =>{
this.lat=res.json().lat;
this.lon=res.json().lon;
/* console.log("lat: "+this.lat+" long: "+ this.lon); */});
}
とconsole.log
結果がgetGeoLocation()
がうまく機能することを示しています。 しかし、このメソッドを別のメソッドで使用しようとすると、this.lat
とthis.lon
はundefined
になります。 はここに私の方法である:私はそれを期待
getWeatherForcastWithLocation(){
this.getGeoLocation();
console.log("lat: "+this.lat+" long: "+ this.lon);
bla..bla..bla...
}
、this.getGeoLocation();
を呼び出すことによって、それは私のためにlon
とlat
を設定します。しかし、コンソールは彼らがundefined
だと言います。 コードの何が間違っていますか?
'get'が非同期であるため、これらは未定義です。 HTTP応答が受信されるまでは設定されません。 – cartant
応答では、変数ではないオブジェクトを取得します。右? – micronyks
あなたはそれをページに表示したいのですか、それともさらなるコードで使用したいですか? – micronyks