我正在尝试创建模块(地图视图、网络、地理位置等),但我面临异步问题。例如,我有 geolocation.js:
exports.getLocation = function(){
var lat="";
var lon="";
// 请求用户使用当前位置服务的权限
Ti.Geolocation.purpose = "Receive User Location";
Titanium.Geolocation.accuracy = Titanium.Geolocation.ACCURACY_BEST;
Titanium.Geolocation.distanceFilter = 10;
// 获取当前位置(触发一次)
Titanium.Geolocation.getCurrentPosition(function(e){
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 位置是异步的,所以当我使用“return lat+lon”时,我得到空值。我尝试了回调,但他们无法返回 getLocation 的值。有什么通用的方法来管理这个异步函数吗?