如何查找在并行ajax调用期间导致错误的方法
how to find which method is causing the error during parallel ajax call
我使用$。当对webapi控制器进行并行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。
问题:
在某些情况下,任何一个方法都失败了,根据失败的方法,我需要向用户显示适当的消息。当任何一个方法失败时,异常就会在'fail'部分被捕获。但是,如何找到引发异常的方法?
如果您使用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.
});
相关文章:
- 未捕获错误:无法在初始化之前调用方法;
- 为什么我得到错误IE修剪方法是't支持
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- 处理浮点错误的最佳方法是什么
- AngularJS错误:提供程序必须从$get工厂方法返回值
- SignalR:调用集线器方法时出现内部服务器错误
- React路由器错误-'无法调用方法'getRouteAtDepth'的未定义'
- 使用javascript ajax post方法的未定义偏移PHP错误
- Push方法显示错误
- 修复AngularJS错误:提供程序必须从$get工厂方法返回值
- $resource上带有.then()函数的角度自定义方法导致错误
- 克服错误的更优雅的方法是什么:需要对象说明符.当通过JXA通过Messages发送SMS时,参数没有对象说明符
- jQuery AJAX Post方法错误(语法错误)
- 在Javascript中调用对象方法时不是函数类型错误
- 操作映射触发控制器中的错误方法
- Backbone JS Model Fetch在Fiddler中返回200,但调用错误方法
- 未捕获的类型错误:方法不是函数
- 如何在重写Backbone'时触发错误?方法
- Google Web 工具包运行时错误:方法中缺少非本机或抽象方法中的“代码”属性
- 在NPObject上调用错误方法