今天在code review时候看到同事的代码,用了ajax同步,async:false,如果不设置async参数,默认是true,为异步,异步的情况是比较复杂的,看下同步这个例子:
function getCommit(){
var data = null;
$.ajax({
url: '', async: false,
success:function(res){
data = res.data;
}
});
return data;
}
该方法的return放在了方法的最后一步,不像我们常规使用成功回调那样,如果后台迟迟没有响应,则程序是卡死在这里不往下执行的,用户什么也做不了,就类似于浏览器崩溃或者死机一样。
ajax同步很确定的说,已经不适合应用在正式的产品中了,必须改为用异步去请求数据!但如果是异步,那么情况是比较复杂,如果嵌套多个则不知哪个接口会先返回,但是返回写在异步回调中就可以了。
书山有路勤为径,学海无涯苦作舟。【完】