Avatar ·

Kotlin: withContext() vs async-await — cuál es la diferencia y qué elegir?

¡Hola, colegas! Recientemente comencé a aprender corrutinas en Kotlin y me confundí entre `withContext()` y la construcción `async-await`. A primera vista, ambos permiten ejecutar código en otro contexto (por ejemplo, en `Dispatchers.IO`) y obtener un resultado. Pero no entiendo cuándo usar cada uno. Aquí hay un ejemplo simple. Supongamos que necesito cargar datos de la red y procesarlos: ```kotlin suspend fun loadUser(): User { return withContext(Dispatchers.IO) { // simulación de solicitud de red delay(1000) User("Alexey") } } suspend fun loadUserAsync(): User { val deferred = GlobalScope.async(Dispatchers.IO) { delay(1000) User("Alexey") } return deferred.await() } ``` Ambas funciones hacen lo mismo: devuelven un User después de un segundo. Pero he oído que `async-await` se usa a menudo para tareas paralelas, mientras que `withContext` se usa para cambiar el dispatcher. Sin embargo, en una llamada secuencial simple no veo la diferencia. Además, noté que