【发布时间】:2015-05-15 11:38:44
【问题描述】:
我在 AJAX 中使用 jQuery,但在我们的应用程序的其他地方使用 Q,因此希望确保 Promise 实现是一致的。
我已经用 Q 包装了 jQuery AJAX 调用,如下所示:
Q($.ajax(url, {
type: 'get'
}));
而且对于成功响应来说一切正常。现在我想添加错误处理,我想要全局错误处理(因为我们的服务器有一致的错误响应),制作这样的 API:
var xhr = function (url) {
return Q($.ajax(url, {
type: 'get'
}))
.then(function (data) {
return data;
}, function (res) {
//global error handling
});
};
我希望这样使用它:
xhr('...').then(function () { console.log('success'); });
问题是当全局错误处理程序在调用xhr 方法的消费者上运行“成功”方法时。
你会如何防止这种情况发生?
可在此处查看可运行的示例 - http://jsbin.com/gudifu/3/edit
【问题讨论】:
标签: jquery ajax error-handling promise q