Junior — Middle
Jak lze inicializovat provádění suspend funkce v Kotlinu?
sobes.tech AI
Odpověď od AI
V Kotlinu lze volat funkce suspend pouze z jiné funkce suspend nebo z korutiny. Pro spuštění funkce suspend mimo suspend kontext se používá coroutine scope a spouštěcí funkce, například launch nebo async z knihovny kotlinx.coroutines.
Příklad:
import kotlinx.coroutines.*
suspend fun fetchData() {
delay(1000) // simulace dlouhé operace
println("Data přijata")
}
fun main() {
runBlocking { // spustí korutinu a zablokuje aktuální vlákno
fetchData() // volání suspend funkce v suspend kontextu
}
GlobalScope.launch { // spuštění korutiny v globálním scope
fetchData()
}
Thread.sleep(2000) // aby program neskončil dříve
}
Proto je třeba, abyste byli uvnitř suspend funkce nebo spustili korutinu pomocí launch, async nebo runBlocking.