关于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设置为同步,不进行异步操作。