для тестирования разных статусов. Пробую так (скрин), в итоге ошибка есть, но статус canceled
switchMap(() => throwError()) Хотя ваш вариант тоже должен работать, скорее всего ваши ожидания не соответствуют реальности
Спасибо. Но результат к сожалению тот же
Стоп, тебе http ошибки нужны?
Так верни throwError(new HttpError(HttpCode.ServerError)) или как-то так
Пока дошел до этого. Жду именно респонса. canceled нет, но есть 200. Но хотя бы система себя стала вести более ожидаемо. Ваше предложение не очень понял)
Ну я буквально это и предложил, просто не помню точного синтаксиса) В чем сейчас проблема? Ваш код должен работать, код ошибки вы проставляете в errorResponse. В if точно заходит?
Я поменял местами ещё с некоторыми интерцепторами и в целом система ведет себя правильно не смотря на то, что в network статус 200. Вполне возможно, что это связанно с тем, что у нас graphQL. В целом поведение меня устраивает. Большое вам спасибо!!
Можете просто не отправлять запрос, next.handle не вызывайте, а возвращайте throwError сразу
я пробовал, но в этом случае система ведет себя не корректно, так как запрос считается canceled
Так а где canceled, в девтулзах? Почему вам не пофиг?
да, там. Но при этом мой код реагирует не так, как ожидается. В итоге ни данных ни ошибки, будто ничего и не было
Вы мне в любом случае очень помогли. То что у меня есть - вполне достаточно) ещё раз спасибо
графкл всегда 200 возвращает. а зачем вам там интерцептор?
Да, но тот же таймаут, на сколько я помню - будет со своим кодом. Но вообще да - я забыл этот нюанс. Ответ на ваш вопрос) Вообще мне нужно написать механизм для тестирования падений запросов. Чаще всего ошибку сложно вызывать при ручном тестировании, но кейсы эти покрываются. И вот чтобы не мучатся с беком роняя его или ещё что выдумывая, я придумал интерцептор, который будет реагировать на настройки из локалстораджа для имитации ошибки
плохое решение, можно во владке нетворк заблочить запрос. или поискать расширение для браузера которое заворачиват запросы. интерцептор, смотрящий в локалсторадж это точно не лучший вариант.
Обсуждают сегодня