Sobes.tech
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.