$resource
вызывает некоторый API. Если он возвращает некоторый флаг, то запрос должен отбрасываться в .catch()
разделе $resource('api/').get(...).$promise.catch();
Мой перехватчик не вызывает этот звонок. Он вызывает .then
в любом случае
Код перехватчика:
.factory('SomeHTTPInterceptor', function($q) {
return {
response: function(response) {
if (response.data.someFlag) {
return $q.reject(response);
}
return response;
}
};
})
Как получить такой же ответ, но в разделе catch без проверки ошибок в каждом отдельном запросе?
Вы должны использовать обработчик responseError в соответствии с doc responseError: перехватчик вызывается, когда предыдущий перехватчик выдавал ошибку или разрешался с отказом.
.factory('SomeHTTPInterceptor', ['$q', function($q) {
return {
// optional method
'responseError': function(rejection) {
if (rejection.data.someFlag) {
// do something
}
return $q.reject(rejection);
}
};
}]);
responseError
, когда предыдущий перехватчик отклонил запрос или он (запрос) не удался. Так что я не могу сделать это первое отклонение.