2015-09-17 2 views
1

Вот ответ моего сервиса:Запрос перехватчик для обеспечения Поймать блок в ответ

response = response.then(function (data) { 
     return data.data; 
    }); 
    response.catch(function (data) { 
     $q.reject(data); 
    }); 
    // Return the promise to the controller 
    return response; 

В перехватчик я возвращаюсь:

return $q.reject(); 

Но до сих пор я получаю обратно в:

response.then 

Можно ли вернуться в блокирующий блок?

Благодаря

Добавление больше кода:

.service('APIInterceptor', function ($q, $rootScope, UserService) { 
var service = this; 

service.request = function(config) { 
    return $q.reject(); 
    //return config; 
}; 
service.responseError = function (response) {   
    return response; 
}; 
}) 
+1

Можете ли вы разместить больше кода? – dfsq

+0

Добавлен дополнительный код. Кажется, что если я удаляю service.responseError из Interceptor, он переходит в блок catch. – Mark

ответ

1

Что происходит, что ваш .request создает ошибку (делая return $q.reject()), но ваш .responseError «ручки», что ошибка (в силу того, чтобы быть там) , что привело к общей успешной резолюции.

Действительно, удаление .responseError обработчик делает ошибку пузыря до .catch. Кроме того, вы можете также return $q.reject() в .responseError.

Смежные вопросы