Coroutine-Flow версия RxJavas Flowable.replay (1) .autoConnect () - PullRequest
0 голосов
/ 27 апреля 2019

В моем случае ViewModel имеет состояние, которое он выставляет через getState(): Flowable<State>, внутренне это лениво инициируемое поле, которое в основном создает текущее состояние, а затем "кэширует" его с помощью flowable.replay(1).autoConnect().

Конечным результатом является то, что фактическое создание состояния (например, выполнение запросов к базе данных и т. Д.) Выполняется один раз и используется повторно до тех пор, пока существует ViewModel, вместо того, чтобы создавать его заново всякий раз, когда кто-то использует состояние (например, когда видимость видна против скрытой).

Это творит чудеса, и хотя я не собираюсь менять его прямо сейчас (не меняйте то, что не сломано), меня очень впечатляют сопрограммы, и я бы очень хотел знать, есть ли способ получить точно такой же "поток" "с этим, используя недавно опубликованную функциональность Kotlins Flow .

...