jQuery stop ajax running asynchrously
本问题已经有最佳答案,请猛点这里访问。
有没有办法防止Ajax异步运行?
jQuery:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var returnValue = false; var appCount = 0; $.ajax({ type:"GET", url:"getBookedAppointmentCountByDoctorAndDate.php", data: dataString, success: function (response){ appCount = response; //alert(appCount); if(appCount >= 6){ returnValue = true; } } }); return returnValue; |
我的代码中有一个if语句,它检查这个函数的返回值。因为Ajax是异步运行的,所以if语句将在设置返回值之前继续运行。对于返回PHP值的其他方法有什么想法或建议吗?
1 2 3 | if (blah($(this)) === true) { alert("blah"); } else { ... |
在ajax参数http://api.jquery.com/jquery.ajax/中添加参数
最好把
您正在函数中使用此代码段,对吗?既然你有一个
不能返回将在异步任务中确定的值。您可以做的是将回调函数传递给该函数,当确定该值时,将该值传递给该函数并调用它。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | function myFunc(callback) { var returnValue = false; var appCount = 0; $.ajax({ type:"GET", url:"getBookedAppointmentCountByDoctorAndDate.php", data: dataString, success: function (response){ appCount = response; //alert(appCount); if(appCount >= 6){ returnValue = true; } callback(returnValue); } }); } myFunc(function (value) { console.log(value); // do what ever you want with `value` }) |
另一种方法是使用