gpt4 book ai didi

javascript - 如何等待AJAX​​请求的结果?

转载 作者:行者123 更新时间:2023-11-29 17:47:22 28 4
gpt4 key购买 nike

我有一个ajax请求,我需要等待响应返回。我确信我必须使用 Promise,但我真的很害怕 Promise,而且我永远无法理解它。它有多个名为 .then().resolved().reject().catch() 等这让我很困惑。

无论如何我都必须使用它。所以这是我的代码,它不起作用:

Promise(function (resolve, reject) {
var req = $.ajax({
url: path,
type: 'GET',
data: {"name": value },

beforeSend: function () {
if (req != null) {
req.abort();
}
},
success: function (url) {
resolve(url);
},

error: function (jqXHR, textStatus, errorThrown) {
reject(textStatus);

},

timeout: 20000

});
});

据我所知,会发生ajax调用,因为当我将console.log(url)放在success block 中时,它也会打印url并且一切都很好。但我不知道如何返回?我的意思是 resolve() 如何返回某些内容?我到底什么时候应该使用 .then()

最佳答案

顺便说一句,$.ajax 返回实现 Promise 接口(interface)的 jqXHR 对象,为它们提供 Promise 的所有属性、方法和行为。所以你的代码可以是这样的

function onResolve () { alert( "$.ajax succeeded" ); }
function onReject () { alert( "$.ajax failed" ); }

// Promise syntax style
$.ajax({
url: path,
type: 'GET',
data: {"name": "value"}
}).then(onResolve, onReject);

// or equivalent jQuery syntax style
$.ajax({
url: path,
type: 'GET',
data: {"name": "value"},
success: onResolve,
error: onReject
});

关于javascript - 如何等待AJAX​​请求的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47961754/

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