Как сделать поочередную загрузку данных с помощью 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)
}
→ Ссылка