Мне нужно сделать несколько вызовов параллельно и отправить результат только тогда, когда все успешно с сопрограммами
Я хочу вызвать несколько страниц одновременно. Поскольку в API есть 4 страницы, и я хочу получить результат сразу.
Мне удалось сделать это вручную следующим образом:
private fun fetchList() {
viewModelScope.launch {
val item1 = async { repository.getList(1)!! }
val item2 = async { repository.getList(2)!! }
val item3 = async { repository.getList(3)!! }
val item4 = async { repository.getList(4)!! }
launch {
mutableLiveDataList.success(item1.await() + item2.await() + item3.await() + item4.await())
}
}
}
Но когда я пытаюсь l oop это просто вызывает одну из страниц.
Api:
@GET("cards")
suspend fun getListCards(@Query("set") set: String, @Query("page") page: Int): CardsResponse