通用javascript
我已经有一段时间没有用js写东西了,显然有点生疏了。试图理解以下问题。通用javascript,javascript,Javascript,我已经有一段时间没有用js写东西了,显然有点生疏了。试图理解以下问题。getCurrentPosition successCallback中的警报正确显示纬度,但最后一行警报undefined。为什么我的client_location函数在函数外部调用时不返回纬度 client_location = function() { if (navigator.geolocation) { return navigator.geolocation.getCurrentPosition(fun
getCurrentPosition successCallback
中的警报正确显示纬度,但最后一行警报undefined
。为什么我的client_location函数在函数外部调用时不返回纬度
client_location = function() {
if (navigator.geolocation) {
return navigator.geolocation.getCurrentPosition(function(position) {
alert(position.coords.latitude); ## RETURNS LATITUDE CORRECTLY ##
return position.coords.latitude;
});
}
};
alert(client_location()); ## RETURNS UNDEFINED ##
您正在将回调传递给
getCurrentPosition
,并且您的警报
在该回调中。您的返回位置.coords.latitude
也在该回调中。您的client\u location
函数返回任何getCurrentPosition
返回和
如果你想用纬度做点什么,你必须在回调函数中做;您可以将client\u location
这样的回调交给以下人员:
client_location = function(callback) {
if (navigator.geolocation) {
return navigator.geolocation.getCurrentPosition(function(position) {
callback(position.coords.latitude);
});
}
};
client_location(function(lat) {
alert(lat);
});
您正在将回调传递给
getCurrentPosition
,并且您的警报
在该回调中。您的返回位置.coords.latitude
也在该回调中。您的client\u location
函数返回任何getCurrentPosition
返回和
如果你想用纬度做点什么,你必须在回调函数中做;您可以将client\u location
这样的回调交给以下人员:
client_location = function(callback) {
if (navigator.geolocation) {
return navigator.geolocation.getCurrentPosition(function(position) {
callback(position.coords.latitude);
});
}
};
client_location(function(lat) {
alert(lat);
});
如果设备未返回地理位置,则未定义。 添加else语句以处理无地理位置
client_location = function() {
if (navigator.geolocation) {
return navigator.geolocation.getCurrentPosition(function(position) {
alert("clientLocation: "+position.coords.latitude);
return position.coords.latitude;
});
}else{
return("no navigator.geolocation");
}
};
alert(client_location());
如果设备未返回地理位置,则未定义。 添加else语句以处理无地理位置
client_location = function() {
if (navigator.geolocation) {
return navigator.geolocation.getCurrentPosition(function(position) {
alert("clientLocation: "+position.coords.latitude);
return position.coords.latitude;
});
}else{
return("no navigator.geolocation");
}
};
alert(client_location());
+1用于链接到
接口地理定位
。确切显示了为什么最终警报值是未定义的,而不是任意的。@Ray:我更喜欢提供权威参考,而不是期望人们相信我是权威。hm。我正在尝试编写一个简单的函数,我可以调用它,它可以返回纬度,但我想避免向该函数传递任何参数。我如何将回调传递给client_location函数内部化?@brewster:这不会很好地工作,因为getCurrentPosition
是异步的;因此,您不知道何时可以从getCurrentPosition
获得结果。我建议您习惯异步回调方法,在使用AJAX和许多其他API时,您必须始终处理它。+1用于链接到接口地理位置
。确切显示了为什么最终警报值是未定义的,而不是任意的。@Ray:我更喜欢提供权威参考,而不是期望人们相信我是权威。hm。我正在尝试编写一个简单的函数,我可以调用它,它可以返回纬度,但我想避免向该函数传递任何参数。我如何将回调传递给client_location函数内部化?@brewster:这不会很好地工作,因为getCurrentPosition
是异步的;因此,您不知道何时可以从getCurrentPosition
获得结果。我建议您习惯异步回调方法,在使用AJAX和许多其他API时,您必须始终处理它。