Уверен, что это стандартная проблема "ожидание асинхронной функции, которая будет вести себя синхронно".Хотя я не знаком с Titanium-Mobile, я предполагаю, что Titanium.Geolocation.getCurrentPosition
является асинхронной функцией - это означает, что указанная вами функция обратного вызова не запустится к тому времени, когда выполнится следующий оператор alert(latitude);
.1003 *
Чтобы это исправить, вам нужно убедиться, что все, для чего требуется установить геолокацию, вызывается в функции обратного вызова, а не раньше:
Titanium.Geolocation.getCurrentPosition(function(e) {
if (e.error) {
alert('Error: ' + e.error);
} else {
var params = {
username: user.username,
gender: user.gender,
lastOnline: day+"/"+month+"/"+year+" - "+hours+":"+minutes,
latitude: e.coords.latitude,
longitude: e.coords.longitude,
accuracy: e.coords.accuracy
};
// now do something with params
initializeStuff(params);
}
});