Size: a a a

ReactiveX - русскоговорящее сообщество

2020 July 10

v

vitaly in ReactiveX - русскоговорящее сообщество
И всё равно мне не даёт покоя вопрос, как нормально "протаскивать" какой-то объект / пачку объектов через пайплайн. Пробовал создавать object и везде возвращать его, создавая новый - но что-то дюже вербозно и уродливо. Не говоря уже о том, что компилятор иногда ёбается и в рантайме ClassNotFoundException кидает. А постоянные зипы эти тоже какая-то шляпа. Может, я пытаюсь заставить rx сделать то, для чего он не предназначен, но так хочется верить в чудо...
источник

AD

Aleksey D. in ReactiveX - русскоговорящее сообщество
vitaly
И всё равно мне не даёт покоя вопрос, как нормально "протаскивать" какой-то объект / пачку объектов через пайплайн. Пробовал создавать object и везде возвращать его, создавая новый - но что-то дюже вербозно и уродливо. Не говоря уже о том, что компилятор иногда ёбается и в рантайме ClassNotFoundException кидает. А постоянные зипы эти тоже какая-то шляпа. Может, я пытаюсь заставить rx сделать то, для чего он не предназначен, но так хочется верить в чудо...
ну без конкретной задачи сложно сказать, правильно ли ты пытаешься её решить
источник
2020 July 13

RA

Rost Artemov in ReactiveX - русскоговорящее сообщество
Всем привет! У меня есть класс со списком объектов внутри. Я хочу изменить значения этих объектов
значениями(observable), которые получаю с репозитория и вернуть главный объект,
завернутый в observable. Как мне этого достич? Вот код.

data class MainModel(secondModels: List<SecondModel>)

data class SecondModel(var value1: String, var value2: String)

//хочу что-то наподобие, но не знаю, как вернуть Observable<MainModel>
val mainObject: Observable<MainModel> = Observable.just(mainModel)
 .map { it.secondModels }
 .flatMap {
   val data = repository.getData()
   it.value1 = data.value1
   it.value2 = data.value2
 }
источник

i

iamthevoid in ReactiveX - русскоговорящее сообщество
Observable.just(mainModel)
   .flatMap {  main ->
       repository.getData().map {
           // do something with data and assign data to main
          // return main
       }
   }
источник

RA

Rost Artemov in ReactiveX - русскоговорящее сообщество
iamthevoid
Observable.just(mainModel)
   .flatMap {  main ->
       repository.getData().map {
           // do something with data and assign data to main
          // return main
       }
   }
Нет, немного не так, у меня для каждой secondModel своя data с репозитория, исправил в вопросе, изначально не заметил, сори
источник

i

iamthevoid in ReactiveX - русскоговорящее сообщество
iamthevoid
Observable.just(mainModel)
   .flatMap {  main ->
       repository.getData().map {
           // do something with data and assign data to main
          // return main
       }
   }
Дословно писать не буду, главное суть улови и переделай. Но как то так должно работать

Single.just(main)
 .flatMap { main ->
   Observarvable.fromIterable(main.second)
     .concatMapSingle { second ->
       repository.getData(second)
         .map{ data ->
           // do something with data and second and return
         }  
     }
     .toList()
     .map { main.second = it }
 }
источник

RA

Rost Artemov in ReactiveX - русскоговорящее сообщество
iamthevoid
Дословно писать не буду, главное суть улови и переделай. Но как то так должно работать

Single.just(main)
 .flatMap { main ->
   Observarvable.fromIterable(main.second)
     .concatMapSingle { second ->
       repository.getData(second)
         .map{ data ->
           // do something with data and second and return
         }  
     }
     .toList()
     .map { main.second = it }
 }
спасибо
источник

i

iamthevoid in ReactiveX - русскоговорящее сообщество
Вообще мутабельность это не очень хорошо (зависит конечно, но обычно лучше вернуть новый объект), как и пользоваться observable везде, где подойдут другие вещи, вроде Single. Не первая rx Java поди
источник

RA

Rost Artemov in ReactiveX - русскоговорящее сообщество
iamthevoid
Вообще мутабельность это не очень хорошо (зависит конечно, но обычно лучше вернуть новый объект), как и пользоваться observable везде, где подойдут другие вещи, вроде Single. Не первая rx Java поди
про мутабельность знаю, у меня ее нет, тут добавил для простоты) rxjava 2
источник

w

whoami in ReactiveX - русскоговорящее сообщество
Подскажите пожалуйста оператор: мне нужно если Single приходит null, то сразу завершать с ошибкой
источник

АК

Артем Кулик... in ReactiveX - русскоговорящее сообщество
сингл не может эммитать null
источник

АК

Артем Кулик... in ReactiveX - русскоговорящее сообщество
и выплюнет ошибку сам
источник

w

whoami in ReactiveX - русскоговорящее сообщество
спасибо!
источник

AD

Aleksey D. in ReactiveX - русскоговорящее сообщество
Артем Кулик
сингл не может эммитать null
вообще никто в RxJava2 не может)
источник
2020 July 14

v

vitaly in ReactiveX - русскоговорящее сообщество
что ему не нравится?
источник

v

vitaly in ReactiveX - русскоговорящее сообщество
или я ёбнулся, или котлин(
источник

AD

Aleksey D. in ReactiveX - русскоговорящее сообщество
vitaly
что ему не нравится?
onErrorResumeNext { t: Throwable -> Observable.just(item) }
источник

v

vitaly in ReactiveX - русскоговорящее сообщество
да, я уже так написал, но мне интересно, почему оно всё почёркало?
источник

v

vitaly in ReactiveX - русскоговорящее сообщество
типа я же синтаксически правильно написал...
источник

AD

Aleksey D. in ReactiveX - русскоговорящее сообщество
vitaly
типа я же синтаксически правильно написал...
неправильно, там сначала идет сигнатура лямбды, а потом что-то еще
источник