2017-02-02 295 views
-1
function runimage(){ 
    var vel = val.id; 
    var secondlink = 'someurl'+vel+'stuff';      

    $.getJSON(secondlink, function(beyta){ 
     var target = beyta.attachments.data[0].media.image.src; 
     return target; 
    }); 

    return "FISH"; 
} 

我正在通過jQuery的getJSON方法進行API調用。我遇到的問題是runimage()函數返回值爲我的target值。代碼return target給我undefined。即使我將虛擬字符串放置在target的位置,結果也是如此。從嵌套函數返回調用

要看到,如果這是關閉一個問題,我添加了一個虛擬return "FISH"超出了我的getJSON呼叫,並且代碼確實返回"FISH"

我將如何去獲取runimage()返回變量target的價值?

+2

你不能! '$ .getJson'是異步的。 –

+0

考慮回調延續或承諾來處理異步操作 –

回答

1

問題是,當您等待獲得您的AJAX響應時,該函數已經返回「FISH」。

+0

我應該澄清,假人被用作測試。與我的原始代碼不同。我只是在這裏添加它,看看它是否是關閉的問題。 –

+0

@ibrahim mahrir請不要添加新內容給其他人的答案。改爲添加評論。謝謝。 –

+0

你應該看看JavaScript的「承諾」來解決這個問題。 –