Junior — Middle
Ako možno inicializovať vykonávanie suspend funkcie v Kotlin?
sobes.tech AI
Odpoveď od AI
V Kotlinu je možné volať suspend funkcie iba z inej suspend funkcie alebo z korutiny. Na spustenie suspend funkcie mimo suspend kontextu sa používa coroutine scope a spúšťacie funkcie ako launch alebo async z knižnice kotlinx.coroutines.
Príklad:
import kotlinx.coroutines.*
suspend fun fetchData() {
delay(1000) // simulácia dlhého procesu
println("Dáta prijaté")
}
fun main() {
runBlocking { // spustí korutinu a zablokuje aktuálny vlákno
fetchData() // volanie suspend funkcie v suspend kontexte
}
GlobalScope.launch { // spustenie korutiny v globálnom scope
fetchData()
}
Thread.sleep(2000) // aby program neskončil skôr
}
Preto je potrebné, aby ste boli v suspend funkcii alebo spustili korutinu pomocou launch, async alebo runBlocking.