Junior — Middle
Kuidas saab Kotlinis suspend funktsiooni käivitada?
sobes.tech AI
Vastus AI-lt
Kotlinis saab välja kutsuda suspend-funktsiooni ainult teise suspend-funktsiooni või korutina kaudu. Suspend-funktsiooni käivitamiseks väljaspool suspend-konteksti kasutatakse coroutine scope'i ja käivitamisfunktsioone nagu launch või async kotlinx.coroutines teegist.
Näide:
import kotlinx.coroutines.*
suspend fun fetchData() {
delay(1000) // pika operatsiooni imitatsioon
println("Andmed saadud")
}
fun main() {
runBlocking { // käivitab korutina ja blokeerib praeguse niidi
fetchData() // suspend-funktsiooni kutsumine suspend-kontekstis
}
GlobalScope.launch { // käivitab korutina globaalses scope'is
fetchData()
}
Thread.sleep(2000) // et programm ei lõppeks varem
}
Seega, suspend-funktsiooni alustamiseks peate olema suspend-funktsiooni sees või käivitama korutina launch, async või runBlocking abil.