最近遇到一个问题,ajax异步回调的速度小于js当前执行的速度.比如以下场景
var flag = false;
$.get('xxx/xxx',data,function(data){
if(data){
flag = true;
}
});
if(flag){
//执行一些其他的
alert('test')
}
即使data存在的话,alert也不会执行到, 因为默认的jquery回调是异步的,异步的速度慢于jquery正常执行的速度,那么alert就永远不会执行到,那么如何此处需要限制jquery回调为同步,按顺序来执行. 解决方案
声明关闭异步回调
$.ajaxSetup({
async : false
});
或者直接使用$.ajax({async:false})