其实这个问题很简单,考的是初学者的信号量问题。
var flag=false,count=0; $("#btn").on("click",function(){ if (flag)return; flag = true count++; console.log(count) setTimeout(()=>{ $.ajax({ type:"get", url:"https://m.gztaoyou.com/caseapi.html", async:true, success:function(e){ flag=false; console.log(e); //打印的这么? }, error:function(){ } }); },0) }); console.log(flag)
原理为定一个信号量,允许初次能进来,然后第一次进来之后改变信号量,如在ajax回调里面没有成功侧不会让其变成可点击,直接return掉。(定时器可忽略)