JavaScript全局变量未定义

时间:2017-09-26 12:38:23

标签: javascript undefined

我已阅读assignment

但我的问题有所不同,因为我没有在里面创建相同的变量名。

$(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 varibale工作?

1 个答案:

答案 0 :(得分:0)

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