Junior — Middle
Jak można zainicjować wykonanie funkcji suspend w Kotlin?
sobes.tech AI
Odpowiedź od AI
W Kotlinie funkcje suspend można wywołać tylko z innej funkcji suspend lub z korutyny. Aby uruchomić funkcję suspend poza kontekstem suspend, używa się scope korutyny i funkcji uruchamiających, takich jak launch lub async z biblioteki kotlinx.coroutines.
Przykład:
import kotlinx.coroutines.*
suspend fun fetchData() {
delay(1000) // symulacja długiej operacji
println("Dane otrzymane")
}
fun main() {
runBlocking { // uruchamia korutynę i blokuje bieżący wątek
fetchData() // wywołanie funkcji suspend w kontekście suspend
}
GlobalScope.launch { // uruchomienie korutyny w zakresie globalnym
fetchData()
}
Thread.sleep(2000) // aby program nie zakończył się wcześniej
}
Zatem, aby zainicjować funkcję suspend, należy być w funkcji suspend lub uruchomić korutynę za pomocą launch, async lub runBlocking.