Я пытаюсь создать модули (mapview, network, geolocations и т. Д.), И я столкнулся с асинхронной проблемой. Например, у меня есть geolocation.js:Асинхронная проблема с модулем - Titanium
exports.getLocation = function(){
var lat="";
var lon="";
// запрашивает у пользователя разрешения на использование текущей службы определения местоположения
Ti.Geolocation.purpose = "Receive User Location";
Titanium.Geolocation.accuracy = Titanium.Geolocation.ACCURACY_BEST;
Titanium.Geolocation.distanceFilter = 10;
// Получить текущее местоположение (огнь раз)
титана .Geolocation.getCurrentPosition (функция (е) {
if (e.error){
alert('The device cannot get your current location');
return;
}
var longitude = e.coords.longitude;
var latitude = e.coords.latitude;
lon = longitude; lat = longitude;
});
// I WANT HERE TO RETURN LAT+LON VALUES
// return lat+lon;
}
Я хочу позвонить из приложения app.js: var location = require ('/ geolocation'); var latlon = location.getLocation(); , но getCurrent position является асинхронным, поэтому, когда я использую «return lat + lon», я получаю null. Я попробовал обратный вызов, но они не могут вернуть значение для getLocation. Есть ли общий способ управления этими асинхронными функциями?