gpt4 book ai didi

jquery - 使用 jQuery 中的延迟对象处理多个 ajax 调用的不同成功和失败状态

转载 作者:行者123 更新时间:2023-12-03 22:40:10 24 4
gpt4 key购买 nike

$.when 为同时查询的所有多个 ajax 调用返回一个 Deferred 对象。

如果一切成功 .done() 执行,如果任何一个 url 失败 .fail() 执行。

如何处理部分成功状态? (即)如果 5 个 url 传递给 $.when,如果 3 个成功,我们需要处理成功状态,如果 2 个失败,我们需要处理失败状态。

$.when($.getJSON(headerUrl), $.getJSON(tasksUrl), $.getJSON(testingTrackerUrl), $.getJSON(highlightsUrl)))
.then(function(headerData, tasksData,testingTrackerData,highlightsData) {
printData(headerData, tasksData,testingTrackerData,highlightsData);
})
.fail(function(data, textStatus, jqXHR) {
console.error('Got error in '+jqXHR);
});

最佳答案

尝试

var request = function (url) {
return $.getJSON(url)
}
, requests = [
headerUrl
, tasksUrl
, testingTrackerDataUrl
, highlightsDataUrl
];
// return array of `resolved` , `rejected` jqxhr objects
$.when(
$.map(requests, function (_request, i) {
return request(_request)
})
)
// do stuff with `resolved` , `rejected` jqxhr objects
.always(function (arr) {
$.each(arr, function (key, value) {
// `success`
value.then(function (data, textStatus, jqxhr) {
console.log(data, textStatus, jqxhr);
printData(data)
}
// `error`
, function (jqxhr, textStatus, errorThrown) {
console.log(jqxhr, textStatus, errorThrown)
})
})
});

jsfiddle http://jsfiddle.net/guest271314/91Lomwr3/

关于jquery - 使用 jQuery 中的延迟对象处理多个 ajax 调用的不同成功和失败状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27171161/

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