如果服务无法加载网址,我正在尝试获取http错误。我创建了一个像这样的角度工厂:
loadUsers: function () {
return $http.get(urlService.url("/users"));
},
在控制器中我尝试使用此工厂方法加载ruserlist:
urlservice.loadUsers()
.then(function(response) {
$log.info("user loaded");
})
.finally(data.bind(undefined, result));
此时我想处理http错误,但没有想到我必须使用错误函数,因为这是返回一个承诺。有人可以给我提示吗。
答案 0 :(得分:1)
只需在您的承诺中添加.catch
:
urlservice.loadUsers()
.then(function(response) {
$log.info("user loaded");
})
.catch(function(err) {
console.log(err);
})
.finally(data.bind(undefined, result));
答案 1 :(得分:1)
向.then
方法添加第二个回调,如果出现错误将触发该回调。
: https://docs.angularjs.org/api/ng/service/ $ HTTP
$http({
method: 'GET',
url: '/someUrl'
}).then(function successCallback(response) {
// this callback will be called asynchronously
// when the response is available
}, function errorCallback(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
答案 2 :(得分:0)
只需在此承诺中添加另一个函数
urlservice.loadUsers()
.then(function(response) {
$log.info("user loaded");
},function(response) {
$log.info("error");
})
.finally(data.bind(undefined, result));
答案 3 :(得分:0)
urlservice.loadUsers().then(successCallback, errorCallback)
.finally(data.bind(undefined, result));
var successCallback = function(response) {
// handle data recieved
$log.info("user loaded");
};
// create generic method for handling service errors
var errorCallback = function(error) {
// handle error here
$log.info("error occurred");
};