我已经读到了惊讶的是,全局变量在JavaScript中具有未定义的值。
但是我的问题有所不同,因为我没有在内部创建相同的变量名称。
$(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(all_ap);
根据上述结果在console.log(result);
之前工作。
为什么?我应该如何使all_ap
变量有效?
,因为 $.getJSON
是异步函数,因此在将来完成后将其调用给它。这就是为什么您的console.log(all_app)
首先被调用的原因,因为它在$.getJSON
之后被称为同步。