JavaScript Global Varibale尚未定义

JavaScript Global Varibale尚未定义

问题描述:

我已阅读Surprised that global variable has undefined value in JavaScriptJavaScript Global Varibale尚未定义

但我的问题是不同的,因为我还没有建立内部同一varible名字..

$(document).ready(function() { 
    var all_ap; 
    var url = "http://localhost/example/php-code/json.php"; 
    $.getJSON(url, function(result) { 
     all_ap = result; 
     console.log(result); 
    }); 
    console.log(all_ap); 
}); 

这些控制台结果。

undefined 
(6) [{…}, {…}, {…}, {…}, {…}, {…}] 

根据上述结果好像console.log(result);之前console.log(all_ap);作品。

这是为什么?我应该如何让all_ap varibale工作?

+0

它是未定义的,因为您正在尝试使用它*之前*它被分配了任何值。 '$ .getJSON'是异步的。 – David

+0

这不是一个全局变量。 –

+0

您必须阅读有关异步代码。 – sjahan

因为$.getJSON是异步函数,因此提供给它的回调在将来完成后会被调用。这就是为什么你的console.log(all_app)被首先调用,因为它在$.getJSON之后被同步调用。

+0

感谢您的回答。你能告诉我,我如何修改上面的代码来获取JSON结果到全局变量?我读了https://*.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call。但很难理解它。你可以请编辑你的答案我如何纠正我的问题? –