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.