gpt4 book ai didi

javascript - AngularJS - 用 promise 处理错误

转载 作者:行者123 更新时间:2023-12-03 11:47:04 24 4
gpt4 key购买 nike

我正在使用提供程序通过我的 Angular 应用程序中的 API 获取一些数据,然后在 Controller 中使用它。 API 调用有时会关闭,从而导致 500 错误。这个错误被打印到控制台,我不知道如何优雅地处理它。

这是我的提供商代码:

function myPvdr() {
this.getUrl = function() {
return 'http://path/to/my/API';
};
this.$get = function($q, $http) {
var self = this;
return {
getData: function(points) {
var d = $q.defer();
$http({
method: 'GET',
url: self.getUrl(),
cache: true
}).success(function(data) {
d.resolve(data);
}).error(function(err) {
d.reject(err);
});
return d.promise;
}
}
}
}

这是我在 Controller 中使用它的方法:

function myCtrl($scope, myProvider, localStorageService) {
$scope.myData = localStorageService.get('data') || {};

myProvider.getData()
.then(function(data) {
localStorageService.set('data', data);
$scope.data = data;
});
}

如何正确处理 500 错误,即不向控制台抛出任何错误并使用本地存储中提供的数据(如果有)?

非常感谢

最佳答案

你可以这样捕获 Promise 的拒绝:

myProvider.getData()
.then(function(data) {
// promise resolved, data treatment
}, function(error) {
// promise rejected, display error message
});

myProvider.getData()
.then(function(data) {
// promise resolved, data treatment
})
.catch(function(error) {
// promise rejected, display error message
});

关于javascript - AngularJS - 用 promise 处理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26005796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com