-1

我正在加载一个 100k 的 JSON 文件 - 似乎即使我从 done 函数中设置了 'usersJSON' 变量,该文件实际上并没有完全加载。Firefox 总是失败并且控制台记录 '{"readystate:1"}" - 当然,这里需要的是 4。

Chrome 做得更好,但偶尔也会失败。较小的测试文件可以完美加载。有人在这里有任何想法吗?

users.init();

users = { 

    usersJSON:"",

    init:function() {

        $.getJSON("userJSON.json",function() {

        }).done(function(data) {
            users.usersJSON=data;
        });
        users.processUsers()

    },
    processUsers:function() {
        var thisLog=JSON.stringify(users.usersJSON);
        console.log(thisLog);
    }
}
4

1 回答 1

1

是的...凯文 B 是对的。如果您从“完成”处理程序内部调用 processUsers,您的代码将起作用。

users.init();

users = { 

    usersJSON:"",

    init:function() {

        $.getJSON("userJSON.json",function() {

        }).done(function(data) {
            users.usersJSON=data;
            users.processUsers()
        });


    },
    processUsers:function() {
        var thisLog=JSON.stringify(users.usersJSON);
        console.log(thisLog);
    }
}
于 2013-09-11T21:18:37.030 回答