RxJava: как разделить Single - PullRequest
0 голосов
/ 05 июля 2018

Как разделить отдельный поток на отдельные отдельные потоки, чтобы я мог выполнить следующее, не вычисляя getUserId() дважды?

// getUserId() returns Single<String>

getUserId().flatMap { getSomething(it) }  // Return Single<Something>
getUserId().flatMap { getSomethingElse(it) } // Return Single<SomethingElse>

1 Ответ

0 голосов
/ 06 июля 2018

Кэшируйте результат getUserId, используя cache

val userIdCached = getUserId().cache()
userIdCached
    .flatMap { getSomething(it) }
    .subscribe(...)
userIdCached
    .flatMap { getSomethingElse(it) }
    .subscribe(...)
...