关于ajax回调无法给全局变量赋值的问题

本文探讨了在使用Ajax时遇到的全局变量无法正确赋值的问题,原因是Ajax的异步特性。在回调函数中给全局变量赋值时,由于异步执行,外部可能在赋值完成前就调用了该变量。解决方法是将Ajax设为同步,避免异步影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于ajax回调无法给全局变量赋值的问题

今天在项目过程中遇到在ajax回调的方法里给全局变量赋值时,在外部调用的时候发现全局变量始终无法成功被赋值的问题。

查阅相关资料和相关测试以后发现是ajax异步调用导致的问题,在ajax赋值未完成时就进行了全局变量的调用。

window.blessinfo={}
$.ajax({
    url: './messageget',
    type: 'post',
    dataType: 'json',
    async:true,

})
.done(function(res) {
    if (res) {      
        blessinfo = res;  
    }
})
.fail(function() {
    console.log("error");
})
.always(function() {
    console.log("complete");
});
console.log(blessinfo)

以上代码输出结果为 {}

解决方案:

async:false

把ajax设置为同步,不进行异步操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值