как получить (вернуть )данные из CoroutineScope Kotlin
Всем привет, только начал изучать андройд разработку, вопрос : есть код :
fun startcoroutin (pegenamber:Int) {
//запуск загрузки json in corotine
job?.cancel()
job = CoroutineScope(Dispatchers.Main).launch {
var jsonlist = LoadJson().loadjsonlist(pegenamber) // это suspend
}
}
как можно из этой функции вернуть значение jsonlist ? делала так но не работает ошибка :
fun startcoroutin (pegenamber:Int):JSONObject {
//запуск загрузки json in corotine
job?.cancel()
job = CoroutineScope(Dispatchers.Main).launch {
var jsonlist = LoadJson().loadjsonlist(pegenamber) // это suspend
}
return jsonlist // не видит переменную из корутины
}
как можно решить этот вопрос ? спасибо
Ответы (1 шт):
Автор решения: oQaris
→ Ссылка
Попробуйте использовать вместо launch функцию async, которая возвращает вычисленное значение:
fun startCoroutine(pageNumber: Int) = scope.async {
var jsonList = LoadJson().loadjsonlist(pageNumber)
return@async jsonList
}
Затем вызвать await для получения результата, например:
Log.i(startCoroutine(5).await())