使用拦截器处理 angular 个 http 错误
Handle angular http errors using interceptors
我的问题是处理来自 http REST 调用的错误的最佳方法是什么。我应该使用拦截器还是装饰器?我的休息功能看起来像这样:
queryFunction : function (config) {
var defer = $q.defer();
var config = {};
$http.get(someUrl, config) //or http.put, delete
.then(function (response) {
defer.resolve(response.data);
})
.catch(function (ex) {
defer.reject(ex);
});
return defer.promise;
},
最简单的拦截器会是什么样子?
这是通用 $http ErrorInterceptor 的代码:
app.factory('ErrorInterceptor', ['$q', function($q) {
return {
responseError: function(rejection) {
// An error message is shown for all kind of server errors
if (rejection.status == -1) {
//alert('Backend is not working');
//use rejection.data variable
}
return $q.reject(rejection);
}
};
}])
然后它可以包含到应用程序配置中
app.config(['$httpProvider', function($httpProvider) {
$httpProvider.interceptors.push('ErrorInterceptor');
})
我的问题是处理来自 http REST 调用的错误的最佳方法是什么。我应该使用拦截器还是装饰器?我的休息功能看起来像这样:
queryFunction : function (config) {
var defer = $q.defer();
var config = {};
$http.get(someUrl, config) //or http.put, delete
.then(function (response) {
defer.resolve(response.data);
})
.catch(function (ex) {
defer.reject(ex);
});
return defer.promise;
},
最简单的拦截器会是什么样子?
这是通用 $http ErrorInterceptor 的代码:
app.factory('ErrorInterceptor', ['$q', function($q) {
return {
responseError: function(rejection) {
// An error message is shown for all kind of server errors
if (rejection.status == -1) {
//alert('Backend is not working');
//use rejection.data variable
}
return $q.reject(rejection);
}
};
}])
然后它可以包含到应用程序配置中
app.config(['$httpProvider', function($httpProvider) {
$httpProvider.interceptors.push('ErrorInterceptor');
})