Junior — Middle
Cum se poate iniția executarea unei funcții suspend în Kotlin?
sobes.tech AI
Răspuns de la AI
În Kotlin, funcțiile suspend pot fi apelate doar dintr-o altă funcție suspend sau dintr-o coroutine. Pentru a porni o funcție suspend în afara unui context suspend, se folosește un scope de coroutine și funcții de lansare precum launch sau async din biblioteca kotlinx.coroutines.
Exemplu:
import kotlinx.coroutines.*
suspend fun fetchData() {
delay(1000) // simulare a unei operații lungi
println("Datele au fost primite")
}
fun main() {
runBlocking { // pornește o coroutine și blochează firul curent
fetchData() // apelul funcției suspend în context suspend
}
GlobalScope.launch { // lansarea unei coroutine în scope global
fetchData()
}
Thread.sleep(2000) // pentru ca programul să nu se încheie mai devreme
}
Prin urmare, pentru a iniția o funcție suspend, trebuie să fii în interiorul unei funcții suspend sau să lansezi o coroutine folosind launch, async sau runBlocking.