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.