本文介绍了等到条件成立为止?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在JavaScript中使用了 code> function。
现行代码:
var current_latlng = null;
函数gpsSuccess(pos){
//console.log('gpsSuccess');
if(pos.coords){
lat = pos.coords.latitude;
lng = pos.coords.longitude;
}
其他{
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){
//用户提交表单,我们需要它们的位置...
while(current_location == null){
toastMessage('Waiting for your location ...');
wait(500); //我应该用什么来代替?
}
//继续找到找到的位置。 ..
});
解决方案
您可以使用超时尝试重新提交形式:
$('#route-form')。submit(function(event){
//用户提交表单,我们需要它们的位置...
if(current_location == null){
toastMessage('Waiting for your location ...');
setTimeout(function(){ $('#route-form')。submit();},500); //尝试在超时后提交表单
返回false;
} else {
//继续定位找到...
}
});
I'm using navigator.geolocation.watchPosition in JavaScript, and I want a way to deal with the possibility that the user might submit a form relying on location before watchPosition has found its location.
Ideally the user would see a 'Waiting for location' message periodically until the location was obtained, then the form would submit.
However, I'm not sure how to implement this in JavaScript given its lack of a wait function.
Current code:
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... });
解决方案
You could use a timeout to try to re-submit the form:
$('#route-form').submit(function(event) { // User submits form, we need their location... if(current_location==null) { toastMessage('Waiting for your location...'); setTimeout(function(){ $('#route-form').submit(); }, 500); // Try to submit form after timeout return false; } else { // Continue with location found... } });
这篇关于等到条件成立为止?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!