169 похожих чатов

@Blindkai прочитал твою статью про управление API слоем на фронте. Возник

вопрос, в чем подход с возвратом [error, responseData] лучше того, чтобы из API слоя просто пробрасывать дальше ошибку, а в компоненте ловить в catch-блоке ?

Есть сакральный смысл какой-то или просто это увиделось более удобным ?

9 ответов

6 просмотров

Вообще, я задумался, что есть смысл возвращать и сырой response в случае чего.

А по поводу ошибки, то там есть несколько сценариев, если брать во внимание сам axios.

А еще мне сейчас нравится больше возвращать данные или ошибку и ловить это через if (response instanceof Error) { ... }

El-Nasurov Автор вопроса

Так а в чем разница то будет, на саму ошибку это ведь никак не влияет.. Т.е. в первом случае мы возвращаем ошибку из catch блока API слоя return [error], а в компоненте получаем как первый элемент массива. А в другом случае, ошибку пробрасываем из .catch блока API-слоя throw error и ловим ее в .catch блоке компонента и обрабатываем Получается саму ошибку это ведь никак не касается. Меняется просто способ получения этой ошибки

El Nasurov
Так а в чем разница то будет, на саму ошибку это в...

Если Вы не хотите обрабатывать ошибку в слое транспорта, а хотите работать с ней в слое отображения, то можно опустить момент с try catch в слое транспорта.

El-Nasurov Автор вопроса
Yurii
Если Вы не хотите обрабатывать ошибку в слое транс...

Не, я просто хотел понять, почему мы именно к такому подходу подошли.. Думал может есть какие-то важные плюсы у первого над вторым, поэтому я собственно и спросил

El Nasurov
Не, я просто хотел понять, почему мы именно к тако...

Важным плюсом первого есть то, что можно обработать ошибку на уровне транспорта. Под обработать, я имею введу привести её к общему виду или к Ошибке свойственной приложению.

El-Nasurov Автор вопроса

теперь я понял смысл этой строчки, где мы в if-е определяем тип ошибки и делаем необходимую нам логику в зависимости от той или иной ошибки)

El Nasurov
теперь я понял смысл этой строчки, где мы в if-е о...

Да, главное держать обработчики внутри API уровня, они могут быть разными для отдельных endpoints. Ну и еще структуру ошибок можете себе придумать с конструкторами, тогда будет проще с ними работать, переводить их на разные языки и т. д.

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта