2016-10-12 63 views
-1

我想從getJson函數返回一個值,但是自getJSON等待以來沒有發生該事件。我試過實現的回調函數,但結果是一樣的。 我的代碼是

function getFBName(callback) { 
    $.getJSON("http://ip-api.com/json/?callback=?", function (data) { 
    callback(data); 
    }); 
} 

function handleName(a) { 
    console.log(JSON.stringify(a)); 
    return JSON.stringify(a); 
} 

控制檯結果是真實的,但如果你想要得到的值返回函數getFBName返回值爲「undefined」

+0

這裏有'handleName'函數的需要是什麼? –

+0

,因爲我調用handleName這樣'Ip':'「+ getFBName(handleName)+」' –

+0

你似乎試圖同步返回結果,當'$ .getJSON'是異步的,即使使用回調? – adeneo

回答

0

。你可以做財產以後這樣的:

function getFBName(callback) { 
    $.getJSON("http://ip-api.com/json/?callback=?") 
    .done(function(result) { 
     console.log(result.a); //assuming that exist the element a 
    }); 
}; 

注意:您可以將斷點「的console.log」和檢查原因返回undefined。確保你能夠正確訪問json響應的結果。 請記住,getJSON是異步的

+0

其中是回調函數即時,但我不明白,我試過這段代碼我的意思是嘗試.done函數,但我採取相同的結果 –