gpt4 book ai didi

javascript - 如何在并行 ajax 调用期间找到导致错误的方法

转载 作者:行者123 更新时间:2023-11-30 12:22:44 24 4
gpt4 key购买 nike

我正在使用 $.when 对 webapi Controller 进行并行 ajax 调用,它工作得很好。结构如下,

$.when(GetDataFromMethodA(),GetDataFromMethodB(),GetDataFromMethodC())
.done(function (responseFromMethodA,responseFromMethodB, responseFromMethodC) {
if (responseFromMethodA != null) {
//do some action
}

if (responseFromMethodB != null) {
//do some action
}

if (responseFromMethodC != null) {
//do some action
}

}).fail(function (xhr, textStatus, errorThrown) {
//which method raised the exception?
});

方法:

function GetDataFromMethodA() {

var Request = {};
Request.Code = name.find(':selected').val();

return $.ajax({
url: 'api/Data/GetCurrentView',
type: 'POST',
dataType: 'json',
data: Request
});
}

同样,我有方法B和C。

问题:

在某些情况下,任何一种方法都会失败,并且根据失败的方法,我需要向用户显示适当的消息。当任何一个方法失败时,异常都会在“失败”部分被捕获。但是,如何找到引发异常的方法?

最佳答案

如果您使用always 而不是done,您可以使用isResolved()isRejected() 检查请求是否成功,例如:

$.when(GetDataFromMethodA(),GetDataFromMethodB(),GetDataFromMethodC())
.always(function (responseFromMethodA,responseFromMethodB, responseFromMethodC) {
if(responseFromMethodA.isRejected()) {
console.log('A did not work!');
}
if(responseFromMethodB.isRejected()) {
console.log('B did not work!');
}
// ...etc.
});

关于javascript - 如何在并行 ajax 调用期间找到导致错误的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30470936/

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