Sobes.tech
Junior — Middle

Kuidas saab Kotlinis suspend funktsiooni käivitada?

sobes.tech AI

Vastus AI-lt

Kotlinis saab välja kutsuda suspend-funktsiooni ainult teise suspend-funktsiooni või korutina kaudu. Suspend-funktsiooni käivitamiseks väljaspool suspend-konteksti kasutatakse coroutine scope'i ja käivitamisfunktsioone nagu launch või async kotlinx.coroutines teegist.

Näide:

import kotlinx.coroutines.*

suspend fun fetchData() {
    delay(1000) // pika operatsiooni imitatsioon
    println("Andmed saadud")
}

fun main() {
    runBlocking { // käivitab korutina ja blokeerib praeguse niidi
        fetchData() // suspend-funktsiooni kutsumine suspend-kontekstis
    }

    GlobalScope.launch { // käivitab korutina globaalses scope'is
        fetchData()
    }
    Thread.sleep(2000) // et programm ei lõppeks varem
}

Seega, suspend-funktsiooni alustamiseks peate olema suspend-funktsiooni sees või käivitama korutina launch, async või runBlocking abil.