Size: a a a

Kotlin Community

2020 June 30

А

Андрей in Kotlin Community
Eugene P.
Пытаюсь сломать мозг с`RxJava` в сторону Flow. Если StateFlow.flowOn не работает, то как будет верно менять Dispatcher для промежуточных операций? Ну т.е. какой аналог будте такого кода RxJava
state: BehaviorProcessor
state
.observeOn(Schedulers.IO)
.doOnNext(Do something in IO thread)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(Do something in main thread)
flowOn меняет поток исполнения в операторах выше по цепочке,  а collect будет выполняться в потоке, который используется в scope.launch {}
источник

EP

Eugene P. in Kotlin Community
@mentarey но flowOn deprecated для StateFlow
источник

А

Андрей in Kotlin Community
Eugene P.
@mentarey но flowOn deprecated для StateFlow
А данные в StateFlow откуда приходят? Через обычный Flow?
источник

EP

Eugene P. in Kotlin Community
@mentarey Ну пока ниоткуда, я пытаюсь разобраться в логике работы
источник

EP

Eugene P. in Kotlin Community
Т.е. смогу ли я делать то же самое, что раньше делал с RxJava
источник

КР

Кирилл Романенко... in Kotlin Community
Eugene P.
@mentarey но flowOn deprecated для StateFlow
Почему?🤔
источник

EP

Eugene P. in Kotlin Community
источник

EP

Eugene P. in Kotlin Community
Мне тоже интересно почему, если StateFlow расширяет Flow
источник

BP

Bogdan Panchenko in Kotlin Community
Eugene P.
@mentarey но flowOn deprecated для StateFlow
Нет, он просто бессмысленный
источник

А

Андрей in Kotlin Community
Eugene P.
Т.е. смогу ли я делать то же самое, что раньше делал с RxJava
Там он там не нужен, ты просто туда данные свои сетишь
источник

EP

Eugene P. in Kotlin Community
@SchFuntik Хорошо, и какая альтернатива?
источник

BP

Bogdan Panchenko in Kotlin Community
Eugene P.
@SchFuntik Хорошо, и какая альтернатива?
А что тебе нужно ?
источник

EP

Eugene P. in Kotlin Community
Я написал выше, как добиться такого же поведения как в RxJava
источник

А

Андрей in Kotlin Community
Eugene P.
Т.е. смогу ли я делать то же самое, что раньше делал с RxJava
Все легко конвертится.

На медиуме есть прям подробный гайд и отличие одного от другого
источник

BP

Bogdan Panchenko in Kotlin Community
Eugene P.
Я написал выше, как добиться такого же поведения как в RxJava
Я с ней не знаком
источник

EP

Eugene P. in Kotlin Community
@mentarey Я читал этот гайд, про StateFlow там не было, на сколько помню
источник

КР

Кирилл Романенко... in Kotlin Community
Bogdan Panchenko
Нет, он просто бессмысленный
Почему? А если мне нужно сменить контекст вычислений?
источник

EP

Eugene P. in Kotlin Community
Bogdan Panchenko
Нет, он просто бессмысленный
А то, что он бессмысленный, это тоже как-то не правильно. Что, если приложение не будет знать, что это StateFlow, а будет думать, что это обычный Flow
источник

А

Андрей in Kotlin Community
Eugene P.
@mentarey Я читал этот гайд, про StateFlow там не было, на сколько помню
Так в чем проблема то?
Создай flow цепочку, в ней переплючай диспетчеры, где надо, а в collect данные в StateFlow засеть и подпишись на него в активити
источник

EP

Eugene P. in Kotlin Community
@mentarey Ну это как-то с другой стороны заход, т.е. в StateFlow я должен уже все готовое обработанное передать
источник