我对jQuery比较陌生,我试图解决这个代码但是经常失败,我面临的问题是,我有一个gloval数组(Roles_Permission),我能够在我的AJAX请求中使用它,我也可以对数组的内容进行更改,但是当我出来的那一刻,所有的全局值都回归原始的,为什么?!?需要帮忙。请查看以下代码,
// Global Variable
var Role_Permission = {
"Value1" : true;
"Value2" : true;
"Value3" : true;
}
现在我有一个如下功能,
function checkRoles(){
requestData(
"roleData",
{ roleName: "testUser"},
function(result){
Role_Permission["Value2"] = false;
alert(Role_Permission["Value2"]);
}
});
alert(Role_Permission["Value2"]);
}
AJAX外部的警报将Value2的值返回为True但是,在其中返回为FALSE,为什么?!?请帮忙
三江源
答案 0 :(得分:6)
因为AJAX请求是异步运行的,所以这就是为什么你给它一个回调,一旦完成就会被调用。即使您刚发送的请求仍在运行,回调外的所有内容都会立即执行。这就是为什么底部警报仍然具有旧值,但回调内部的值是新值。
答案 1 :(得分:4)