本文介绍了等到条件成立为止?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在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...
    }
});

这篇关于等到条件成立为止?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 17:41