我有一个定义全局变量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 check#1正在它们旁边发生,因此没有捕获变量的定义。
如果这是准确的,有没有办法解决这个问题?
答案 0 :(得分:0)
在成功回调中执行您需要处理的播放器库,或者在知道已分配值后从该处调用函数