0
私はチタンreverseGeocoderを使用しようとしていますが、私は "スコープ"問題だと思う奇妙な問題があります。なぜ私は、最後のログ呼び出しが、そのスコープ内の変数を定義したときにnull値を返すのかを理解できません。Appceleratorチタン - 逆ジオコーダーと可変スコープの問題
var win = Titanium.UI.currentWindow;
Ti.include('includes/db.js');
var city = null;
var country = null;
Titanium.Geolocation.reverseGeocoder( Titanium.UI.currentWindow.latitude,
Titanium.UI.currentWindow.longitude,
function(evt) {
var places = evt.places;
if (places && places.length) {
city = places[0].city;
country = places[0].country;
}
Ti.API.log(city + ', ' + country); // <<< RETURNS CORRECT VALUES
});
Ti.API.log(city + ', ' + country); // <<< RETURNS NULL VALUES
非同期に見えますが、このライブラリを使用したことがないので、ajax呼び出しと同じ*正確な動作が得られます。ちょうど閉じたこの質問を参照してください:http://stackoverflow.com/questions/7833379/scope-of-javascript-variable – davin
それは同様の状況です、私はジオコーダが完了した後に変数を割り当てる方法が必要です。 – bagwaa
あなたはそれをデバイスで試しましたか、シミュレータを使用していますか? –