Sobes.tech
Junior — Middle

Как може да се извика suspend функция в синхронен код?

sobes.tech AI

Отговор от AI

Не е възможно директно да извикате suspend функция от синхронен код, тъй като тя изисква контекст на корутината. Въпреки това, можете да стартирате корутина и да изчакате резултата блокиращо с помощта на функцията runBlocking.

Пример:

import kotlinx.coroutines.*

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

suspend fun suspendFunction(): String {
    delay(1000)
    return "Резултат"
}

runBlocking създава scope на корутината и блокира текущия поток до завършването ѝ, което позволява използването на suspend функции в синхронен код.