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 функции в синхронен код.