【发布时间】:2016-03-15 09:23:31
【问题描述】:
有没有办法防止 ajax 异步运行?
jQuery:
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 值的任何想法或建议?
if (blah($(this)) === true) {
alert("blah");
} else { ...
【问题讨论】:
-
有办法,但这里真正的答案是,你永远不应该这样做!
-
在你的请求中,你必须做 async: false api.jquery.com/jQuery.ajax
-
你永远不应该在浏览器上使用同步方法,因为冻结了主线程。要在 ajax 调用结束时“返回”一个值,您应该使用回调(或者,更进一步,返回一个承诺)。
标签: javascript jquery ajax asynchronous