这是我的代码:
var lat;
$(document).ready(function() {
navigator.geolocation.getCurrentPosition(function(position) {
lat = position.coords.latitude;
console.log("inside", lat);
});
console.log("outside", lat);
});
当我运行它时(参见jsfiddle),控制台会显示:
外部未定义
在55.8509728内。
不确定是否重要,但我注意到"外面"值始终首先显示,即使它在"内部"之后。在代码中。
有人可以如此友好地解释为什么我无法获得(或可能设置?)lat
变量?
答案 0 :(得分:0)
navigator.geolocation.getCurrentPosition
是一个异步函数,它只调用函数,因此在检索到位置后运行“内部”代码。这就是为什么你首先看到“外部”消息(此时lat
确实未定义)然后是内部消息。
如果您需要访问lat
的值,则需要等到它被定义,例如通过从getCurrentPosition
回调中调用另一个函数。