Tôi đang sử dụng navigator.geolocation.watchPosition
bằng JavaScript và tôi muốn có cách để giải quyết khả năng người dùng có thể gửi biểu mẫu dựa vào vị trí trước khi watchPosition
tìm thấy vị trí của nó.Đợi cho đến khi điều kiện là đúng?
Lý tưởng nhất là người dùng sẽ thấy thông báo 'Đang chờ vị trí' định kỳ cho đến khi có được vị trí, sau đó biểu mẫu sẽ gửi.
Tuy nhiên, tôi không chắc chắn cách triển khai điều này trong JavaScript do thiếu chức năng wait
.
đang hiện tại:
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...
});
Suy nghĩ không đồng bộ. Tra cứu 'setTimeout'. –
Không đồng bộ và đệ quy có thể - đệ quy gọi setTimeout cho đến khi current_latlng có một số giá trị? – Richard
hiểu ngôn ngữ đầu tiên trước khi đổ lỗi cho ngôn ngữ đó. Không có "thiếu" của một chức năng 'chờ đợi 'cho chắc chắn. – jAndy