Sobes.tech
Junior — Middle

Hogyan lehet elindítani egy suspend függvény végrehajtását Kotlinben?

sobes.tech MI

Válasz az MI-től

Kotlinban a suspend-függvényeket csak egy másik suspend-függvényből vagy korutinból lehet hívni. A suspend-függvények futtatásához suspend-környezeten kívül korutin scope-ot és indítási függvényeket, például launch vagy async használunk a kotlinx.coroutines könyvtárból.

Példa:

import kotlinx.coroutines.*

suspend fun fetchData() {
    delay(1000) // hosszú művelet szimulálása
    println("Adatok fogadva")
}

fun main() {
    runBlocking { // korutina indítása és a jelenlegi szál blokkolása
        fetchData() // suspend-függvény hívása suspend-környezetben
    }

    GlobalScope.launch { // korutina indítása globális scope-ban
        fetchData()
    }
    Thread.sleep(2000) // hogy a program ne érjen véget korábban
}

Tehát a suspend-függvény indításához vagy suspend-függvényben kell lenned, vagy launch, async vagy runBlocking segítségével korutínát kell indítanod.