Javascript 全局值在AJAX(jQuery)之后返回到原始值

Javascript 全局值在AJAX(jQuery)之后返回到原始值,javascript,jquery,ajax,global-variables,Javascript,Jquery,Ajax,Global Variables,我对jQuery比较陌生,我正在尝试处理这段代码,但不断失败,我面临的问题是,我有一个gloval数组(Roles_Permission),我可以在AJAX请求中使用它,我还可以更改数组的内容,但当我出来时,所有全局值都会返回到原始值,为什么?!?我需要帮助。请看下面的代码 // Global Variable var Role_Permission = { "Value1" : true; "Value2" : true; "Value3" : true; } 现在我

我对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外部的警报将值2返回为True,而内部的警报返回为FALSE,为什么?!?请帮忙


谢谢你,因为AJAX请求是异步运行的,这就是为什么你要给它一个回调,一旦完成就会调用它。回调之外的所有内容都将立即执行,即使您刚刚发送的请求仍在运行。这就是为什么底部警报仍然具有旧值,但回调中的警报具有新值的原因。



(来源:)

必须有人开发一种人工智能来自动检测(回答)这种问题……是的,我知道。刚刚尝试过,但是自动建议在这种情况下失败了。谢谢,我真愚蠢,没有考虑异步运行。问题解决了。非常感谢:)