Junior — Middle
Πώς μπορούμε να καλέσουμε μια λειτουργία suspend μέσα σε συγχρονικό κώδικα;
sobes.tech AI
Απάντηση από AI
Δεν είναι δυνατόν να καλέσετε άμεσα μια λειτουργία suspend από κώδικα συγχρονισμένο, καθώς απαιτεί πλαίσιο coroutine. Ωστόσο, μπορείτε να ξεκινήσετε μια coroutine και να περιμένετε το αποτέλεσμα με τρόπο μπλοκαρίσματος χρησιμοποιώντας τη λειτουργία runBlocking.
Παράδειγμα:
import kotlinx.coroutines.*
fun main() {
val result = runBlocking {
suspendFunction()
}
println(result)
}
suspend fun suspendFunction(): String {
delay(1000)
return "Αποτέλεσμα"
}
Το runBlocking δημιουργεί ένα scope coroutine και μπλοκάρει το τρέχον νήμα μέχρι να ολοκληρωθεί η coroutine, επιτρέποντας τη χρήση suspend λειτουργιών σε συγχρονικό κώδικα.