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 で返されます。
最終的には、エラーが発生したときにチェーンを停止したいと考えています。おそらくエラーをスローすることでそれを行うことができますが、それは本当に良い解決策ですか? 私はこれに間違った方法でアプローチしていますか?