我正在使用与async:false
的AJAX调用来返回数据,如下所示:
var my_data = my_function(10, 20);
function my_function(value1, value2) {
var returnData;
$.ajax({
type: 'POST',
url: 'my_function.php',
data: { variable1: value1, variable2: value2 },
success: function(data) { returnData = data; },
async:false
});
return returnData;
};
请注意,我已设置async:false
,这在我的代码上下文中是必需的,并且运行良好。
在JQuery API上,为async上的条目提供了此消息:
从jQuery 1.8开始,使用async:false和jqXHR($ .Deferred) 弃用;您必须使用success / error / complete回调选项 而不是jqXHR对象的相应方法,如 jqXHR.done()或不推荐使用的jqXHR.success()。
我无法理解有关我的功能的警告,因为我没有在我的日常工作中使用$.Deferred
;警告仍然可能以我不欣赏的方式适用。那么,按原样保留代码是否安全,或者是否应根据async
的弃用进行重写,如果是,那么应该如何重写? (我需要同步执行的功能。)
非常感谢!
答案 0 :(得分:-1)
您提供的代码看起来不错。以下是不推荐使用的版本(不要这样做):
var my_data = my_function(10, 20);
function my_function(value1, value2) {
var returnData;
$.ajax({
type: 'POST',
url: 'my_function.php',
data: { variable1: value1, variable2: value2 },
async:false
}).success(function(data) { returnData = data; });
return returnData;
};