Как сделать поочередную загрузку данных с помощью kotlin coroutines?
С помощью rxjava в классе репозитория я делал так:
private val scheduler = Schedulers.single()
fun callApiMethod(args):Single<ResultType>{
return apiMethod(args).subscribeOn(scheduler)
}
Как я понял в классе viewmodel'и нужно сделать так:
viewModelScope.launch {
val result = callApiMethod(args) //функция должна быть suspend и вовзращать ResultType
//Обновление livedata
}
Как переписать это на корутины?
Ответы (1 шт):
Автор решения: Сергей Бувака
→ Ссылка
Функция которую вы будете вызывать внутри корутины должна иметь модификатор suspend. Если вы используете Retrofit для него можно подключить CoroutineCallAdapter
addCallAdapterFactory(CoroutineCallAdapterFactory())
val parentJob : Job =Job()
val yourCoroutineScope: CoroutineScope = CoroutineScope(parentJob + Dispatchers.IO)
yourCoroutineScope.launch {
val result = callApiMethod(args:Args)
}