如何让ajax执行完在执行下一段代码

前端之家收集整理的这篇文章主要介绍了如何让ajax执行完在执行下一段代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我们知道ajax是异步的,我们如何通过ajax的返回值来判断下一段代码执行不执行呢,有时ajax没有执行完下一段代码就执行了 如下案例



var forward=false;初始化为false
function step1(){
var name = $("#addrInfo").val();
var addrInfo = $("#addrInfo").val()
var data={
"name":name,
"addrInfo":addrInfo

}

$.ajax({
async: false,//解决问题 变成同步
url:"clinic/gexingSet.htmls",
data:data,
dataType:"json",
type:"post",
cache:false,
success:function(result){

if(result==1){
forward=true;
}else{

$(".myModal-click").trigger("click");
forward=false;
}
}

});



(function($) {
$(document).ready(function() {
$(".btn-nextn").click(function() { /*点击下一步*/
var count = 0; /*点击节点标识器*/
var arr = new Array("one","two","three","four","five","six","seven","eight","nine","ten","ele");
for (var i = 0; i <= arr.length - 1; i++) {
if (arr[i] == par.id) {
count = i; /*id匹配*/
};
};
if(count==0){
step1(); //来控制forward的true还是false
}
if(forward){ //通过forward来判断alert执行还是不执行
alert(执行);
});



上个案例alert走还是不走由forward来决定 而forward是由ajax决定。由于ajax是异步的 所以alert执行有时不受影响,那如何解决呢 我们只需要在step1里的ajax 加上

async: false默认同步 就能解决 只有执行完step1()函数在执行下面的代码



一定要理解ajax同步和异步的区别

原文链接:https://www.f2er.com/ajax/162699.html

猜你在找的Ajax相关文章