我正在寻找一种方法来强制我的javascript应用程序在执行更多代码之前等待coordiantes。我希望以下命令或类似的东西是同步而不是异步。
navigator.geolocation.getCurrentPosition(getGPSCoordinates);
我知道我可以把我的代码放在回调函数中,但这是唯一的方法吗?我没有办法等待它完成然后做出决定吗?
答案 0 :(得分:1)
我没有办法等待它完成然后制作 我的决定?
建议不要将其设置为同步操作,因为在请求期间冻结您的用户界面。
等待 asynchronous
函数完成它的解决方案之一是实现callback
函数。
function getLocation(callback) {
if (navigator.geolocation) {
var lat_lng = navigator.geolocation.getCurrentPosition(function(position){
var user_position = {};
user_position.lat = position.coords.latitude;
user_position.lng = position.coords.longitude;
callback(user_position);
});
} else {
alert("Geolocation is not supported by this browser.");
}
}
getLocation(function(lat_lng){
console.log(lat_lng);
});