怎么让ajax方法先执行完?

我写了个方法,里有还有个ajax方法,我想根据ajax的结果来决定后面的方法执行或不执行。我这样写的
function some(){
$.ajax({
//方法最后alert(1);
});
alert(2);
}
它问题先alert(2),之后才alert(1).
有什么办法让ajax运行完了才运行后面的alert(2)吗?

Jquery等待ajax执行完毕再继续执行下面代码的效果,具体代码如下,其实就是将 jquery ajax 函数的 async 参数设置为 false 即可,该参数默认为 true:

下面给大家介绍jquery 加载等待效果:

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-03
三楼是对的,jquery中ajax默认是异步执行的,就是在执行ajax方法的时候下面的代码不受影响继续执行,所以ajax方法交互未完成,alert(2)就已经执行了,但是在ajax方法里指定了async:false后;就是强制成了同步执行,后面的代码必须等待ajax交互完成了才继续执行。
第2个回答  推荐于2018-02-27
$.ajax({
//方法最后alert(1);
async: false,
});

加个这个本回答被提问者和网友采纳
第3个回答  2018-09-19
利用JQuery的Promise用法实现,var promise = $.ajax("/myServerScript1");promise.then(successFunction)。
第4个回答  2012-05-03
吧alert(2)放在回调函数里面
相似回答