我在JavaScript中使用navigator.geolocation.watchPosition
,我想要一种方法来处理用户可能会在watchPosition
找到它的位置之前提交依赖于位置的表单的可能性。等到条件成立为止?
理想情况下,用户会定期看到“等待位置”消息,直到获取位置,然后表单将提交。
但是,由于缺少wait
函数,我不确定如何在JavaScript中实现此功能。
当前代码:
var current_latlng = null;
function gpsSuccess(pos){
//console.log('gpsSuccess');
if (pos.coords) {
lat = pos.coords.latitude;
lng = pos.coords.longitude;
}
else {
lat = pos.latitude;
lng = pos.longitude;
}
current_latlng = new google.maps.LatLng(lat, lng);
}
watchId = navigator.geolocation.watchPosition(gpsSuccess,
gpsFail, {timeout:5000, maximumAge: 300000});
$('#route-form').submit(function(event) {
// User submits form, we need their location...
while(current_location==null) {
toastMessage('Waiting for your location...');
wait(500); // What should I use instead?
}
// Continue with location found...
});
异步思考。查找'setTimeout'。 –
异步和递归可能 - 递归调用setTimeout,直到current_latlng有一些值? – Richard
先理解语言再归咎于它。当然没有“缺乏”等待功能。 – jAndy