未定义全局变量



我有一个函数(省略了的所有不相关部分),它定义了一个全局变量window.playerLibrary。当我在函数本身中检查window.playerLibrary时(`var check#1),我会得到一个值。如果我在ajax调用之外检查它,它是未定义的。如果在调用函数后检查它,则它是未确定的:

function generateAllCards() {
    $.ajax({
        type: "POST",
        url: "processGame",
        data: {
            mode: "generateCards"
        },
        dataType: "JSON",
        success: function(data) {
            window.playerLibrary = data.playerLibrary;
        // var check #1
            console.log(window.playerLibrary);
        }
    });
// var check #2
    console.log(window.playerLibrary);
}
generateAllCards();
// var check #3
    console.log(window.playerLibrary);

当我输入这条消息时,我怀疑原因是,由于它是在ajax调用中定义的,所以var检查#2和#3是按顺序进行的,而var检查#1是在它们旁边进行的,因此没有捕获变量的定义。

如果这是准确的,有没有办法解决这个问题?

在成功回调中对playerlbrary执行所需操作,或者在知道值已被分配后从那里调用函数

最新更新