早安, 对于我的大学跨平台项目,我需要使用navigator.geolocation.getCurrentPosition()JS函数来检测位置并对其进行处理。 在互联网(和老师的幻灯片)上阅读时,我了解到该函数调用了回调函数,因此我尝试使用一些console.log。
$("#update").click(function() {
console.log(navigator.geolocation.getCurrentPosition(function(position) {do_something(position.coords.latitude, position.coords.longitude);}));
});
结果:未定义。我在做什么错了?
已解决
问题出在我的浏览器上:我不知道为什么,但是等待几秒钟问我“允许位置”,这导致了我这些问题。
答案 0 :(得分:0)
navigator.geolocation.getCurrentPosition(fx)
以回调fx
作为参数,该位置可用时执行。
to simplify your mistake:
function f(g) {
var x = 10, y = 10;
setTimeout(function () {
g(x,y)
}, 100);
};
//what you are doing
console.log(f(function (x,y) { })) //undefined
//what you should do
f(function (x,y) { console.log(x,y) }) //wait a bit, than 10, 10
//summary
console.log(f(function (x,y) { console.log(x,y) })) //undefined
//~100ms later: 10 10