Mam metodę która zwraca pewien obiekt (który jest Singlem z RX'a) na podstawie kilku zapytań z bazy danych. Wszystkie te metody zwracają Single i rezultatem też jest Single
Aktualnie wygląda to mniej więcej tak (piszę w Kotlinie ale nie ma to kompletnie znaczenia):
api.getUser(id).flatMap { user ->
api.getAccesses(id).flatMap { accesses ->
api.getSomething(id).map { something ->
return Result(user, accesses, something)
Tych zapytań jest więcej bo koło 10 więc tworzy się takie dość spore drzewo zagnieżdżeń i wygląda to mega słabo. Pomyślałem sobie że to przerobie na coś takiego:
val user = api.getUser(id)
val accesses = api.getAccesses(id)
val something = api.getSomething(id)
return //Co dalej??
I nie bardzo wiem jak dalej zwrócić jakiś Result. Wynikiem tej metody nadal ma być Single więc nie chcę tu żadnych bloków robić ale nie wiem jak to teraz posklejać. Jakieś rady?