我正在使用 Restangular 通过链式承诺获取数据。这是我正在做的一个简化示例:
Restangular.one("employer").get().then(function(employer) {
return employer;
}, function(response) {
//response.status === '401'
$location(login);
}).then(function(company) {
Restangular.one("reviews?company_name='" + company).get()
.then(function(reviews) {
$scope.reviews = reviews.originalElement;
});
});
首先,我需要获取用户的雇主,然后获取附加到该雇主的评论。我认为它工作正常,直到我从服务器收到 401 响应。
当它发生时,我将用户发送到登录屏幕。这也可以正常工作,但问题是整个链都被执行了——这将返回一个 401。
最终,我希望链在错误发生时停止。我可能可以通过抛出错误来做到这一点,但这真的是一个好的解决方案吗?我是否以错误的方式处理这个问题?