调用.done后,.getJSON请求未就绪

时间:2013-09-11 21:11:47

标签: jquery

我正在加载一个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);
    }
}

1 个答案:

答案 0 :(得分: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);
    }
}