2017-02-02 281 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的“承诺”来解决这个问题。 –