簡體   English   中英

返回值回調函數?

[英]Returning a value of callback function?

我在使用函數回調時遇到了一些麻煩,特別是HTML5地理定位API。 我也是Js的新手。 功能:

function getInfo()
{
    navigator.geolocation.getCurrentPosition(getPos);
}

獲取一個函數的回調參數,該函數獲取傳遞給它的位置。

function getPos(position)
{
PositionObj.lat = position.coords.latitude;
PositionObj.lon = position.coords.longitude;
}

我創建了一個“位置”對象來存儲坐標,我很難返回它們。

var PositionObj = 
{
lat:null,
lon:null,
returnLat: function()
             {
             return this.lat;
             },
returnLon: function()
             {
             return this.lon;
             }
};


function printStuff()
{
getInfo();
console.log(PositionObj.returnLat());
}

編輯:語法錯誤修復。 當我調用printStuff()時,我仍然得到“null”。

  • 要傳遞回調,請使用getPos而不是立即調用該函數。
  • 使用適當的語法在PositionObj聲明屬性。

PositionObj = {
    lat: null,
    lon: null,
}

您的PositionObj文字不正確。 初始屬性應使用冒號設置:

{ lat: '', lon: '' }

回調應告訴您獲取位置信息的請求是異步的。 這意味着getInfo()不會立即設置值,因此以下行不能訪問“新”值。

任何依賴於異步函數結果的東西都必須在回調本身內。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM