在我的 jQuery XHR 的完成处理程序(从 $.get() 调用创建)中是否有一种方法可以查找响应中的问题,然后使用自定义错误消息触发注册的后续处理程序(即失败和始终)?
像这样的东西:
$.get( URL )
.done(
function (data, status, res) {
if(/*some condition*/){
this.Reject(res, status, "some reason");
return
}
//Do stuff on success
}
)
.fail(
//Common error handler here
)
.always(
//common always handler here
);
有点二次过滤就完成了。原因当然是所有 API 都会在 200 响应中推送错误,而 jQuery 永远不会知道这是一个错误。
我想出了如何做到这一点,而且效果很好:
$.get( URL )
.then(
function (data, status, res) {
if(/**some error check**/({
return $.Deferred().reject(res, status, "error message");
}
return $.Deferred().resolve(data, status, res);
}
)
.done(
function (data, status, res) {
//Do stuff on success
}
)
.fail(
//Common error handler here
)
.always(
//common always handler here
);
工作起来就像一个魅力,现在我的工作中没有混乱的数据错误处理,我可以专注于处理数据或设置错误消息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)