处理从ajax得到的数据进行判断,ajax异步的问题

    xiaoxiao2021-03-25  130

    这边要从ajax得到一个变量ls_status=1;然后对ls_status进行判断。但是因为ajax异步问题,可能会跳过ajax直接先对ls_status进行判断,然后再执行ajax,这样的话就会出现错误。这边的方法是:我们先将ajax的async设置为false,使他同步执行。然后在ls_status那边设置一个settimeout,使他两秒后再执行判断。这样就能保证ls_status的判断的绝对性。

    $("body").on("touchstart",".un-eraser",function(){ var _this=$(this); if (login_status == '0'){ login(); return false; } else if ( scract_num == ''){ layer.open({ content: "本活动仅限新下载注册APP的用户参与", skin: 'msg', time: 2 //2秒后自动关闭 }); } else if( phone == ''){ //第一次刮卡检查有没有验证手机号码 $(".AppBG").css("display","block"); $(".AppCheckMessage").css("display","block"); //没有验证验证手机号码 return false; }else if(scract_num<='0') { if (share_status == '1'){ layer.open({ content: "您的抽奖机会已用完", skin: 'msg', time: 2 //2秒后自动关闭 }); return false; }else{ $(".AppBG").css("display","block"); $(".AppShare").css("display","block"); return false; } }else{ $.ajax({ url: "/app/scratchajax" , type: 'get', async:false, //ajax设置为同步 dataType: 'json', success: function(data) { if( data.status ){ scract_num=scract_num-1; $num.html(scract_num ); $('.gua_content').html(data.data.title+"<span>"+data.data.remark+"</span>").show(); if (data.data.title == "一品公仔"){ ls_status=1; } }else{ layer.open({ content: json.msg.r ? json.msg.r : json.msg, skin: 'msg', time: 2 //2秒后自动关闭 }); } } }); $(this).eraser({ size: 60, completeRatio: .6, completeFunction: function() { $('canvas').remove(); setTimeout(function () { //处理从ajax得到的ls_status时间较慢的问题,先将ajax设置为同步,然后设置定时器等待两秒后再判断ls_status if (ls_status==1){ $(".AppAddress").css("display","block"); $(".AppBG").css("display","block"); ls_status=0;} },2000) } }); } });

    转载请注明原文地址: https://ju.6miu.com/read-8725.html

    最新回复(0)