Junior — Middle
Kaip galima inicijuoti suspend funkcijos vykdymą Kotlin?
sobes.tech AI
Atsakymas iš AI
Kotlin'e suspend funkcijos gali būti iškviestos tik iš kitos suspend funkcijos arba iš korutinės. Norint paleisti suspend funkciją už suspend konteksto ribų, naudojamas coroutine scope ir paleidimo funkcijos, tokios kaip launch arba async iš kotlinx.coroutines bibliotekos.
Pavyzdys:
import kotlinx.coroutines.*
suspend fun fetchData() {
delay(1000) // ilgos operacijos imitacija
println("Duomenys gauti")
}
fun main() {
runBlocking { // paleidžia korutiną ir blokuoja esantį srautą
fetchData() // suspend funkcijos iškvietimas suspend kontekste
}
GlobalScope.launch { // paleidžia korutiną globaliame scope
fetchData()
}
Thread.sleep(2000) // kad programa nesibaigtų anksčiau
}
Taigi, norint inicijuoti suspend funkciją, turite būti suspend funkcijos viduje arba paleisti korutiną naudodami launch, async ar runBlocking.