我正在尝试使用js的范围来将变量从navigator.geolocation.getCurrentPosition中拉出

var lat;
function callback (position) {
    lat = position.coords.latitude;
}
navigator.geolocation.getCurrentPosition(callback,fail,{timeout:10000});
// after getCurrentPosition succeeds
alert(lat); // this alerts null

由于范围,上述代码无法在lat变量中存储position.coords.latitude。有没有办法做到这一点?

最佳答案

您必须记住async\ajax性质。

这是代码的执行顺序:

var lat;
alert(lat); // this alerts null
navigator.geolocation.getCurrentPosition(callback,fail,{timeout:10000});
function callback (position) {
    lat = position.coords.latitude;
}

这就是为什么您会得到null的原因。 异​​步! 异​​步! :)

关于javascript - 是否在navigator.geolocation.getCurrentPosition之外保存变量? (javascript),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9935059/

10-10 13:10