Sobes.tech
Junior — Middle

Kako inicirati izvršavanje suspend funkcije u Kotlinu?

sobes.tech АИ

Одговор од АИ

U Kotlinu, suspend funkcije mogu se pozvati samo iz druge suspend funkcije ili iz korutine. Za pokretanje suspend funkcije van suspend konteksta, koristi se coroutine scope i funkcije pokretanja poput launch ili async iz biblioteke kotlinx.coroutines.

Primer:

import kotlinx.coroutines.*

suspend fun fetchData() {
    delay(1000) // simulacija duge operacije
    println("Podaci primljeni")
}

fun main() {
    runBlocking { // pokreće korutinu i blokira trenutni tok
        fetchData() // poziv suspend funkcije unutar suspend konteksta
    }

    GlobalScope.launch { // pokretanje korutine u globalnom scope
        fetchData()
    }
    Thread.sleep(2000) // da program ne završi ranije
}

Dakle, za iniciranje suspend funkcije, morate biti unutar suspend funkcije ili pokrenuti korutinu pomoću launch, async ili runBlocking.