@android_ru

Страница 1670 из 3205
Arsen
03.07.2017
15:50:05
возвращай елемент onNext

Nikita
03.07.2017
15:50:23
Мне нужно чтоб onComplete() не был выполнен

Ivan
03.07.2017
15:50:54
так у тебя либо onComplere() либо onError() в Single

другого не дано

Google
Nikita
03.07.2017
15:51:01
Вообще таск такой: Выполнить метод. Если успешно, сделать *что-то*, если с ошибкой, то ничего

Arsen
03.07.2017
15:51:13
Single.error(new RuntimeException("Все очень плохо"))

Nikita
03.07.2017
15:51:37
Я подписан так: observable.doAfterSuccess { notificationManager.notify(NOTIFICATION_ID, notificationRepository.getNotification(notificationModel)) }

Arsen
03.07.2017
15:51:41
ты вообще перехватываешь ошибки гденибудь?

Nikita
03.07.2017
15:51:48
Нет

Говорюже

Мне надо заигнорить

Выполнить метод. Если успешно, сделать *что-то*, если с ошибкой, то ничего

Arsen
03.07.2017
15:52:08
ну так подпишись двойным response , throwable

Nikita
03.07.2017
15:52:23
Типо?

Arsen
03.07.2017
15:52:23
ничего = v -> {}

просто пустая лямбда

Nikita
03.07.2017
15:52:54
Вот целиком как?

Google
Nikita
03.07.2017
15:53:35
observable.doOnSucsess?

Egor
03.07.2017
15:53:53
doOnSubscibe

Arsen
03.07.2017
15:54:17
нет

Карт-Бланш
03.07.2017
15:54:19
Подскажите вакансий для JS программиста, то есть чат где искать таких прогеров

Arsen
03.07.2017
15:54:26
подписка с 2 параметрами

Egor
03.07.2017
15:54:27
subscribe ({v -> OK} , {v -> -> NOTOK} )

Arsen
03.07.2017
15:54:59
только вместо скобок имя переменной

Nikita
03.07.2017
15:55:00
subscribe ({v -> OK} , {v -> -> NOTOK} )
Я так не могу сделать

казал же

Сказал же

Arsen
03.07.2017
15:55:11
почему

Egor
03.07.2017
15:55:24
ага, почему?)

Nikita
03.07.2017
15:55:32
Мне надо это обработать на уровне самого формирования Observable

Arsen
03.07.2017
15:56:37
сложно, код в студию

Nikita
03.07.2017
15:56:55
Ладно. Пошел на уступки перед архитектурой

Будут две фигурные скобки

Arsen
03.07.2017
15:57:07
Nikita
03.07.2017
15:57:15
Я и чистая архитектура

Но я больше

Arsen
03.07.2017
15:57:34
а что это за архитектура такая?

Google
Nikita
03.07.2017
15:58:02
Ну четкое разделение по слоям

Мы формируем observable

Arsen
03.07.2017
15:58:20
в чистой архитектуре про рх вообще ни слова, рх это конретная реализация

Nikita
03.07.2017
15:58:23
И в другом месте просто вызываем выполнение

Arsen
03.07.2017
15:58:46
обрабатывать ошибки можно на любом из слоев

Nikita
03.07.2017
15:59:12
Ладно. Убедил

Egor
03.07.2017
15:59:39
если ошибка происходит в обсервере - он ее и пробросит, тут все чисто вроде бы

Arsen
03.07.2017
15:59:46
в любом случае подписчик всегда должен ловить ошибки, чтобы не кидать сюрпризы

Egor
03.07.2017
15:59:47
не надо оборачивать его еще выше

Arsen
03.07.2017
16:00:16
можно ловить onErrorResumeNext для обработки специфичных для слоя ошибок

и передавать дальше в другом формате

Nikita
03.07.2017
16:00:39
Убедил. Спасибо

Arsen
03.07.2017
16:01:09
подписчик ловит все то, что не словили другие слои до него

да и обычно подписчик это презентер, а он и общается с "вью". В любом случае он будет отдавать команды по отображению ошибок юзеру

Egor
03.07.2017
16:03:01
мне больше не нравиться мой вариант, у меня в онНекст может прийти 200 (Ретрофит + Rx), но при этом это может быть плохой респонс, со статусов error, вот как это решать?

Andrew
03.07.2017
16:04:12
Ну так у ретрофита есть Response<твоя сущность> . у респонса можно получить код, мессадж и боди

Arsen
03.07.2017
16:04:19
я в репозитории проверяю модельку от сервера, и если не "ок" то делаю Single.error кастомная ошибка, как правило, там стринга от сервера

Andrew
03.07.2017
16:04:39
во-во

Arsen
03.07.2017
16:05:25
был даже вопрос на СО https://ru.stackoverflow.com/questions/683503/%D0%9A%D0%B0%D0%BA-%D1%80%D0%B5%D1%88%D0%B8%D1%82%D1%8C-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%83-%D0%BB%D0%BE%D0%B2%D0%BB%D0%B8-%D0%BE%D1%88%D0%B8%D0%B1%D0%BE%D0%BA-%D0%B2-%D0%A7%D0%B8%D1%81%D1%82%D0%BE%D0%B9-%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B5/683552#683552

Egor
03.07.2017
16:05:41
хм, еще раз.. я думал сделать какуето прослойку в doOnNext() и там смотреть на статус и если статус не ок - ошибку кидать

Google
Andrew
03.07.2017
16:06:38
Тогда уж map Response<твоя сущность> в твою сущность

Arsen
03.07.2017
16:06:50
по-мойму doOnnext не дружит с подпиской, типа взаимоисключающие

юзай .map

Andrew
03.07.2017
16:07:02
wut?

Arsen
03.07.2017
16:07:20
точне с доОнЕррор

когда оба нужны

то я перепутал

есть там кароче камень подводный

Andrew
03.07.2017
16:08:06
не встречал, что бы что-то с подпиской не дружило. Пример в студию

Admin
ERROR: S client not available

Egor
03.07.2017
16:08:07
.doOnNext { if (it.error != null) { throw Exceptions.propagate(IllegalStateException(it.error)) } } .toList() .doFinally { stopProgress() } .subscribe({

или .subscribe { if (it.status == DefaultResponse.EStatus.ok) formModel = builder.buildExtraFieldsForm(it.data, holder) }

Arsen
03.07.2017
16:09:37
Egor
03.07.2017
16:09:38
потому что ретрофит дергает onNext() если 200 статус и onError когда статус != 200

у меня может быть статус 200, но запрос не прошел на сервере и пришла ошибка

Arsen
03.07.2017
16:11:12
тогда сервер должен дополнительно свой статус присылать

полем

Egor
03.07.2017
16:11:32
так он есть в теле ответе, как доп поле

вопрос в том, на каком этапе его проверять

Arsen
03.07.2017
16:12:02
ну в таком варианте .map норм

Google
Egor
03.07.2017
16:12:04
и можно ли написать универстальную опертаку для всего нетворк адаптера

а че меп? что тут мепить?

Arsen
03.07.2017
16:12:45
if (response.isSuccess()) { return response; } else { throw ... }

возвращаешь аргумент, и получается, что ничего не мапил, но свой код вставил

Egor
03.07.2017
16:14:00
ну да, это как я сделал .doOnNext { if (it.error != null) { throw Exceptions.propagate(IllegalStateException(it.error)) } } не вижу разницы\преймущества в меп, просто тоже как вариант

Arsen
03.07.2017
16:14:11
входящий тип = возващаемому

Egor
03.07.2017
16:14:57
это ты про какой случай?

Arsen
03.07.2017
16:15:05
если не юзать doOnError + doOnNext, то отличий нет

Egor
03.07.2017
16:15:40
я понял

Edgar
03.07.2017
16:20:37
Всем привет. Кто-нибудь в курсе, почему Retrofit может не посылать по своему желанию запрос на сервер? То есть каким-то образом эмулировать запрос, как бы глупо это не звучало) С сервера при реальном обращении приходит gzip. Логика не ломается, так как по-любому результат запроса попадает в onResponse, вне зависимости запрос на сервер прошел или нет. Может есть какой-то кэшинг относительно gzip в retrofite?

Anton
03.07.2017
16:22:40
а если логи посмотреть?

Kylych
03.07.2017
16:22:40
bitbucket упал

Edgar
03.07.2017
16:24:34
а если логи посмотреть?
Никаким образом не могу отследить. Это происходить рандомно вообще. Отправил около тысячи запросов, все норм прошло. Но проблема есть

Egor
03.07.2017
16:24:42
Может есть какой-то кэшинг относительно gzip в retrofite?

есть

непомню или включен по умолчанию, но вполне может быть если сервер поддерживает

Edgar
03.07.2017
16:25:39
вот мой хэдер, который приходит на ответ

если чем поможет

"headers":{"namesAndValues":["Server","nginx","Date","Mon, 03 Jul 2017 15:26:06 GMT","Content-Type","application/json","Content-Length","1662","Connection","keep-alive","X-Powered-By","PHP/5.4.42","Pragma","no-cache","Expires","Mon, 03 Jul 2017 15:26:11 GMT","Vary","Accept-Encoding","Content-Encoding","gzip"]

Tsahotar
03.07.2017
16:37:11
Здравствуйте, я на днях решил начать изучать язык JAVA. У меня вот такой вопрос : уместен ли будет этот язык для разработки игр под операционную систему Android, или есть всё-же более пригодный другой вариант, нежели изучение JAVA?

Mukhammed
03.07.2017
16:38:27
вроде джавовые движки не оч популярны сейчас

Yergali
03.07.2017
16:38:48
С# unity

Страница 1670 из 3205