AngularJS:如何使自定义Http服务在错误处理方面更加健壮?
您好,我有一个用于HTTP请求的简单自定义AngularJS服务:AngularJS:如何使自定义Http服务在错误处理方面更加健壮?,angularjs,Angularjs,您好,我有一个用于HTTP请求的简单自定义AngularJS服务: angular.module('MaxRelax') .factory('httpSrv', function httpSrv($http, $q) { return { getData: getData }; function getData(method, url) { var def = $q.defer();
angular.module('MaxRelax')
.factory('httpSrv', function httpSrv($http, $q) {
return {
getData: getData
};
function getData(method, url) {
var def = $q.defer();
$http({method:method, url:url})
.success(function (data, status, headers, config) {
console.log("Success");
console.log(status);
def.resolve(data);
})
.error(function (data, status, headers, config) {
console.log("Error");
getErrorMessage(status);
def.reject("Failed to get");
});
return def.promise;
}
// I WANT HANDLE ERROR STATES HERE AND RETURN FOMRATTED MESSAGE WITH ERROR
// DESCRIPTION IN CASE OF THE ERROR STATE (service unavailable, 404, etc..)
function getErrorMessage(status) {
console.log(status);
}
});
通过以下方式从控制器调用:
httpSrv.getData("GET",APP_CONST.MP3_ACTUAL_VERSION_URL).then(function(data) {
console.log(data);
});
我想让这个服务在错误处理方面更加健壮。例如:
httpSrv.getData("GET",APP_CONST.MP3_ACTUAL_VERSION_URL).
.success(function(data) {
// EVERYTHING IS OK
});
.error(function(data) {
// CALL METHOD getErrorMessage OF THE httpSrv SERVICE to get formatted error message
});
我应该如何更新我的服务,以正确的方式做到这一点,请
谢谢您的建议。没有人知道如何改进这项服务?术语“更健壮”非常模糊-我不确定您的意思以及当前代码中存在的问题。