угловой перехватчик не отклоняется

0

$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 без проверки ошибок в каждом отдельном запросе?

Теги:
angular-http-interceptors

1 ответ

0

Вы должны использовать обработчик responseError в соответствии с doc responseError: перехватчик вызывается, когда предыдущий перехватчик выдавал ошибку или разрешался с отказом.

.factory('SomeHTTPInterceptor', ['$q', function($q) {
    return {
        // optional method
        'responseError': function(rejection) {
            if (rejection.data.someFlag) {
                // do something
            }

            return $q.reject(rejection);
        }
    };
}]);
  • 0
    Насколько я понимаю, вызывается responseError , когда предыдущий перехватчик отклонил запрос или он (запрос) не удался. Так что я не могу сделать это первое отклонение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню