[英]general javascript
我有一段時間沒有用js編寫,顯然有點生銹。 試圖了解以下問題。 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
並且alert
位於該回調內。 您的return position.coords.latitude
也位於該回調中。 您的client_location
函數返回getCurrentPosition
返回的內容,而getCurrentPosition
不返回任何內容 。
如果您想對緯度做一些事情,則必須在回調中完成; 您可以將client_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());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.