gpt4 book ai didi

javascript - 如何/是否重写异步 :false AJAX function?

转载 作者:行者123 更新时间:2023-11-30 06:52:28 25 4
gpt4 key购买 nike

我正在使用带有 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 中,此消息是为异步条目提供的:

As of jQuery 1.8, the use of async: false with jqXHR ($.Deferred) is deprecated; you must use the success/error/complete callback options instead of the corresponding methods of the jqXHR object such as jqXHR.done() or the deprecated jqXHR.success().

我无法理解关于我的功能的警告,因为我没有在我的例程中使用 $.Deferred;该警告仍然可能以我不喜欢的方式适用。那么,保留代码原样是否安全,还是应该根据 async 的弃用重写代码?如果是这样,应该如何重写? (我需要同步执行的功能。)

非常感谢!

最佳答案

您提供的代码看起来不错。以下是一个正在被弃用的版本(不要这样做):

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;
};

关于javascript - 如何/是否重写异步 :false AJAX function?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34517945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com