
DimenSi
01.07.2017
17:00:22
да, вообще я ожидал, что если внутри makeRequest происходит ошибка, то я для getProjects отдаю все равно успешный ответ

Illya
01.07.2017
17:02:16
да, отдаете
return ['test']
вам приходит ответ в виде массива со строкой test

Google

DimenSi
01.07.2017
17:02:45
да, я понял...
я же сделал деструктуризацию...

Illya
01.07.2017
17:02:47
потом вот эта строка const { data }
радостно вытягивает у него поле data

DimenSi
01.07.2017
17:03:29
фэйл и мягкий js
спс

Illya
01.07.2017
17:05:01
кря
https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D1%83%D1%82%D1%91%D0%BD%D0%BA%D0%B0

DimenSi
01.07.2017
17:05:42
ну, тут дело в том, что я просто в упор не видел, что я сделал деструктуризацию

Illya
01.07.2017
17:05:51
кря :)

DimenSi
01.07.2017
17:07:31
я не пойму, как лучше обрабатывать ошибки? В самом экшене или же в функции?
Просто если делать в экшене, то в будущем наплодится огромное количество try,catch на каждый экшен

Illya
01.07.2017
17:09:46
ну скажем так
вот эта строчка слегка отстой
const { data } = await projectsApi.getProjects()

Google

Illya
01.07.2017
17:10:36
почему - потому что у вас "протекла" абстракция - штука которая получает данные знает о формате ответов аксиоса
это стоит прятать за апи, чтоб вам сразу возращался результат
и ошибки стоит обрабатывать в экшне, потому что апи не имеет права "глотать" ошибки

DimenSi
01.07.2017
17:12:13
хм
но как это совместить?
Я должен через getProjects() возращать типо data, но если ошибка то должен вернуть headers?

Illya
01.07.2017
17:15:56
а зачем мы вообще глотаете ошибку

DimenSi
01.07.2017
17:16:56
я тоже не знаю
просто, у меня getProjects выходит просто шорткат какой-то для аксиоса

Illya
01.07.2017
17:18:58
любое апи и есть простая обертка над какой-нибудь библиотекой
транспортный слой не должен содержать бизнес логики
у нас так же
https://gist.github.com/anonymous/df3a35aee50bc7413c30d8b8a6942ef4
все апи просто обертка над аксиосом

DimenSi
01.07.2017
17:20:57
получается, в этот раз мне утенок нужен, потому, что я не понимаю, что я хочу от своего апи.
я хочу получать данные, но если ошибка какая-та, то хочу ее обработать

Illya
01.07.2017
17:21:33
ошибку надо обрабатывать в экшнах
Потому что апи - транспортный слой
обработка ошибок - бизнес логика
нельзя их смешивать

DimenSi
01.07.2017
17:22:15
хм, понятно. Но как быть с const { data } = await projectsApi.getProjects()

Google

DimenSi
01.07.2017
17:22:42
эта штука должна отдавать данные или ошибку
я должен всегда знать, в каком формате приходят данные от этой штуки
или нет?

Illya
01.07.2017
17:23:26
ошибку не глотать и ловить ее через catch

DimenSi
01.07.2017
17:24:13
const actions = {
async getProjects ({ commit }) {
try {
const { data } = await projectsApi.getProjects()
commit(PROJECTS_LIST, data)
} catch (err) {
console.log(err)
}
}
}

Illya
01.07.2017
17:24:36
ну вот там в catch и делайте то что вам надо
как вам надо обрабатывать ошибки

DimenSi
01.07.2017
17:24:55
а что насчет протечки абстракции?
я знаю, что мне приходят данные в дату
или я путаюсь?

Illya
01.07.2017
17:25:56
да, это тоже бы пофиксить
возвращать .data сразу из getProjects()

Illya
01.07.2017
17:26:18
вряд ли вам где-то заголовки нужны

DimenSi
01.07.2017
17:26:47
т.е. я всегда возвращаю дату, но если ошибка какая-та, то уже разбираюсь с заголовками?

Illya
01.07.2017
17:27:16
ну я не помню, возвращает ли аксиос свой класс ошибки
чтоб можно было через instanceof проверить
но в общем да
"ошибка" и "данные" это разные сущности
им более чем допустимо иметь разный формат

DimenSi
01.07.2017
17:29:33
ясно, спасибо. Буду писать, думать, работать. Осваивать

Google

Rafael
01.07.2017
17:30:18
ошибку надо обрабатывать в экшнах
о да, я этому научился, когда переписывал redis protocol parser на плюсах в этом году, еще тогда удивлялся, почему я раньше так не сделал -_-
вообще я очень рекомендую всем периодически переписывать свой старый код
по нескольким причинам:
1) явно виден прогресс
2) понятно, зачем нужно писать хорошо и/или зачем нужны коментраии
3) четко формулируется мысль, почему что-то плохо, а что-то хорошо

Illya
01.07.2017
17:32:54
комментарии не нужны
за очень редким исключением

Rafael
01.07.2017
17:33:30
поэтому и написал "и/или", потому что либо говнокод и коменты, либо хороший и понятный код

Illya
01.07.2017
17:33:45
у нас на все апи один коммент

DimenSi
01.07.2017
17:33:59
"это апи"

Illya
01.07.2017
17:34:07
// See http://repository.cmu.edu/cgi/viewcontent.cgi?article=3059&context=compsci why we need that
перед стремной строчкой

Admin
ERROR: S client not available

Rafael
01.07.2017
17:35:06
ну вот я раньше считал, что именование переменных должно состоять из 1 слова и боялся что меня назовут джавистом, если имена переменных будут большие
:D

DimenSi
01.07.2017
17:35:43
у меня пока больше 5 слов не было

Kelin
01.07.2017
17:37:05

Rafael
01.07.2017
17:37:38
лол
мое темное прошлое, именно поэтому дорога в рай мне закрыта

Kelin
01.07.2017
17:37:44
))))

Rafael
01.07.2017
17:37:46
я как Константин из одноименного фильма

Kelin
01.07.2017
17:38:10
кстати, хороший фильм

Rafael
01.07.2017
17:38:32
ога

Google

DimenSi
01.07.2017
17:38:54
фильм да, сериал...

Rafael
01.07.2017
17:39:06
я вот не знаю

DimenSi
01.07.2017
17:39:23
я смотрел. Там какой-то бомж был ,а не актер

Rafael
01.07.2017
17:39:28
на данный момент мне только 4 сериала понравились

DimenSi
01.07.2017
17:39:32
и ангел негр

Illya
01.07.2017
17:39:39
мне гораздо больше (:

Rafael
01.07.2017
17:40:10
но я впринципе сериалы только в этом году начал смотреть, до этого - нини

Kelin
01.07.2017
17:40:11
да годный фильм

Yaroslav
01.07.2017
17:40:12
а что скала могёт без jvm?

Kelin
01.07.2017
17:40:30
я кст сериалы не смотрел никакие вообще

Rafael
01.07.2017
17:41:12
мой топчик:
1) боевое братство
2) поколение убийц
3) во плоти
4) миллиарды
порадок не соблюден
все более или менее равноценны

Illya
01.07.2017
17:41:39
ну на 25% сойдет :)

DimenSi
01.07.2017
17:41:41
4 класс вещь

Rafael
01.07.2017
17:42:00

DimenSi
01.07.2017
17:42:12
миллиарды вообще впечатлил, нету убийств и всякого типичного для us сериалов

Rafael
01.07.2017
17:42:36

Illya
01.07.2017
17:42:51
Я сериалы тоннами поглощаю
Billions конечно же

Rafael
01.07.2017
17:43:27