加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 01:48:02 所属栏目:百科 来源:网络整理
导读:我们知道ajax是异步的,我们如何通过ajax的返回值来判断下一段代码执行不执行呢,有时ajax没有执行完下一段代码就执行了 如下案例 var forward=false;初始化为false function step1(){ var name = $("#addrInfo").val(); var addrInfo = $("#addrInfo").val(

我们知道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同步和异步的区别

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读