Lección 15 / 20

Trabajo asíncrono (Future, async, await)

En esta lección ejecutarás una tarea que tarda en terminar sin bloquear el resto del programa.

Un Future<String> representa un texto que estará disponible más adelante. La función que lo devuelve se marca con async, y await espera a que el resultado llegue antes de seguir a la línea siguiente.

El código de ejemplo imprime un aviso, espera un segundo simulando una descarga y luego imprime el dato recibido. Fíjate en que main() también lleva async: sin eso no podrías usar await dentro.

Cuesta un poco entender que await no congela la aplicación. Mientras espera, el programa sigue atendiendo otras cosas —en una aplicación móvil, las animaciones y los toques del usuario siguen funcionando— y retoma esta línea cuando el resultado llega. Ese es exactamente el motivo de que exista.

En el trabajo real es lo que sostiene cualquier aplicación: llamadas a una API, lectura de una base de datos o de un archivo. La regla práctica es que si una función lleva await dentro, tiene que llevar async en su declaración y devolver un Future, y eso se propaga hacia arriba por toda la cadena de llamadas.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Dart directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

Espacio publicitario (banner)
Espacio publicitario (en el artículo)