У меня два сетевых запроса.
fun getPostDetail(postId: Int): Single<Post>
fun getComments(postId: Int): Single<List<Post>>
Что я хочу сделать, это ...
- Показывать экран загрузки при запуске. эти два запроса должны работать независимо друг от друга.
- По завершении каждого запроса отображаемые результаты обновляются.
- Скрыть экран загрузки после завершения всех запросов.
У меня есть функции, которые обрабатывают загрузочную страницу:
fun showLoadingScreen()
fun hideLoadingScreen()
и манипулировать видом:
fun showPostDetails(post)
fun showComments(comments)
Я пробовал так - подписывайся на каждого, а также подписывайся объединенным:
postDetail = getPostDetail(postId)
getComments = getComments(postId)
postDetail.subscribe()
getComments.subscribe()
Single.merge(postDetail, getComments).subscribe()
В этом случае он делает несколько запросов, а не один раз.
Какой самый лучший подход к такого рода проблемам? Я могу использовать CountDownLatch
для подсчета завершения каждого запроса, но есть ли другое решение спуска в RxJava?