Sobes.tech
Junior — Middle

Jak wywołać funkcję suspendowaną w kodzie synchronicznym?

sobes.tech AI

Odpowiedź od AI

Nie można bezpośrednio wywołać funkcji suspend z kodu synchronicznego, ponieważ wymaga ona kontekstu korutyny. Jednak można uruchomić korutynę i oczekiwać na wynik w sposób blokujący, używając funkcji runBlocking.

Przykład:

import kotlinx.coroutines.*

fun main() {
    val result = runBlocking {
        suspendFunction()
    }
    println(result)
}

suspend fun suspendFunction(): String {
    delay(1000)
    return "Wynik"
}

runBlocking tworzy zakres korutyny i blokuje bieżący wątek do czasu zakończenia korutyny, co pozwala na użycie funkcji suspend w kodzie synchronicznym.