JavaScript Global Varibale尚未定义
问题描述:
我已阅读Surprised that global variable has undefined value in JavaScript。JavaScript 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工作?
答
因为$.getJSON
是异步函数,因此提供给它的回调在将来完成后会被调用。这就是为什么你的console.log(all_app)
被首先调用,因为它在$.getJSON
之后被同步调用。
+0
感谢您的回答。你能告诉我,我如何修改上面的代码来获取JSON结果到全局变量?我读了https://*.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call。但很难理解它。你可以请编辑你的答案我如何纠正我的问题? –
它是未定义的,因为您正在尝试使用它*之前*它被分配了任何值。 '$ .getJSON'是异步的。 – David
这不是一个全局变量。 –
您必须阅读有关异步代码。 – sjahan