Если функция returnValue()
не может быть приостановлена, в основном есть только два варианта:
- Превратить тип возвращаемого значения в
Deferred<Int>
и возложить на вызывающего абонента ответственность за обработку возвращаемого значения на более позднем этапе. , Тело становится:
fun returnValue(): Deferred<Int> = viewModelScope.async {
return@async 1
}
Блокируйте поток, пока значение не станет доступным:
fun returnValue(): Int {
return runBlocking(viewModelScope.coroutineContext) {
return@runBlocking 1
}
}