JS/jquery方法判断条件执行顺序错乱

需求
    在提交时判断名称是否重复

问题
    JS函数执行顺序错乱问题

代码

let url = carpath + "请求地址";
let flag = true;
// 调用url方法判断名称是否重复
$.get(url, {"name":name}, function (data) {
    alert("请求操作");
    if (data.obj == false) {
        flag = false;
    }
}, 'JSON');

alert(flag)
if(!flag){
    alert("名称重复!");
    flag = true; // 提示后重置flag
    return;
}

代码执行后发现先执行的flag,后执行请求操作
这样导致了flag一直等于true

问题原因
    因为js是异步执行的,在执行过程中 if(!flag) 比 ajax请求 要快,所以先执行if(!flag){} 后执行ajax请求

解决方案

    将方法设为同步处理

    function save(){
        // 添加 ajax 同步, 在ajax完成后在执行后续操作
        $.ajaxSetup({
            async: false
        });

        // 你的业务

    }

错误触发场景
    1. JS/jquery方法中执行顺序错乱
    2. ajax同步/异步
    3. JS/jquery方法判断条件执行顺序错乱

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值