在成功回调之外读取ajax调用结果

时间:2013-11-26 15:56:43

标签: javascript jquery json

我正在尝试读取函数之外的变量。我正在使用API​​进行国家检测并查找JSON提要。我得到的结果很好,但我希望能够在函数之外使用这个结果并且我已尽力了,但无法理解如何解决这个问题。我的代码尝试到目前为止。

var country; // defining country outside of function.

jQuery.getJSON('https://api.wipmania.com/jsonp?callback=?', function (data) { 

    var country = data.address.country;
    console.log(country) // this returns correct result

}); // end location country check function

console.log(country) // This is reading undefined as is not picking up the new var = country resulted from above function.

如何在函数外部使用新的结果国家/地区变量?

谢谢

2 个答案:

答案 0 :(得分:4)

getJSON以异步方式工作。

在回调之前调用最后一个console.log

答案 1 :(得分:1)

当您声明var country时,您正在影响全局country。正如CD ..指出getJSON是异步的,所以你需要在使用之前检查它是否已经设置

var country; // defining country outside of function.

jQuery.getJSON('https://api.wipmania.com/jsonp?callback=?', function (data) { 

   country = data.address.country;
   console.log(country) // this returns correct result

}); // end location country check function

console.log(country || "No country set yet, check back soon!");