Junior — Middle
Kā var uzsākt suspend funkcijas izpildi Kotlin?
sobes.tech AI
Atbilde no AI
Kotlin suspend funkcijas var izsaukt tikai no citas suspend funkcijas vai no korutinas. Lai palaistu suspend funkciju ārpus suspend konteksta, izmanto korutīnas scope un startēšanas funkcijas, piemēram, launch vai async no kotlinx.coroutines bibliotēkas.
Piemērs:
import kotlinx.coroutines.*
suspend fun fetchData() {
delay(1000) // ilgas operācijas imitācija
println("Dati saņemti")
}
fun main() {
runBlocking { // sāk korutinu un bloķē pašreizējo pavedienu
fetchData() // suspend funkcijas izsaukums suspend kontekstā
}
GlobalScope.launch { // sāk korutinu globālajā scope
fetchData()
}
Thread.sleep(2000) // lai programma nebeigtos agrāk
}
Tādēļ, lai uzsāktu suspend funkciju, jums jābūt suspend funkcijas iekšienē vai jāstartē korutina ar launch, async vai runBlocking.