Flutter Mobile Development · Lección

Programación asíncrona con Futures y async/await

Gestione operaciones diferidas en Dart y Flutter mediante Futures, async, await y el manejo de errores.

Lección 4 de 413 pasos

Programación asíncrona con Futures y async/await es una lección gratuita de Flutter Mobile Development en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Flutter Mobile Development, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Flutter Mobile Development incluye 4 lecciones en total.

Why Async?

Las aplicaciones obtienen datos, leen archivos y esperan temporizadores. El bloqueo congelaría la interfaz de usuario, por lo que Dart utiliza la programación asíncrona para mantenerse receptivo.

The Future Type

Un Future es un valor que llegará más tarde. Puede estar incompleto, completado con un valor o completado con un error.

Future<String> fetchName() {
  return Future.delayed(
    Duration(seconds: 1),
    () => "Ada",
  );
}

async and await

Marque una función como async y utilice await para pausarla hasta que un Future se complete; código asíncrono que se lee de arriba a abajo como si fuera normal.

Future<void> main() async {
  print("start");
  String name = await fetchName();
  print("Hello, " + name);
}

await Suspends, Not Blocks

Punto clave: await suspende, no bloquea. El bucle de eventos sigue gestionando otras tareas, por lo que la interfaz de usuario permanece receptiva.

Returning Values

Una función async siempre devuelve un Future. Un return simple dentro de ella simplemente completa ese Future con el valor.

Future<int> doubleIt(int x) async {
  return x * 2;  // becomes Future<int>
}

Error Handling

Envuelve las llamadas await en bloques try/catch para gestionar los fallos, exactamente igual que al capturar excepciones síncronas.

try {
  var data = await fetchData();
} catch (e) {
  print("Failed: " + e.toString());
}

Chaining with then

Sin async/await, adjuntas callbacks con then y catchError. Async/await es más claro, pero se compila con la misma idea.

fetchName()
    .then((n) => print(n))
    .catchError((e) => print("error"));

Running in Parallel

Usa Future.wait para iniciar varios Futures a la vez y esperar a que todos terminen juntos; es más rápido que esperarlos uno tras otro.

var results = await Future.wait([
  fetchA(),
  fetchB(),
]);

FutureBuilder in Flutter

El widget FutureBuilder reconstruye tu interfaz de usuario a medida que un Future pasa de cargando a completado, por lo que muestras indicadores de carga y resultados de forma declarativa.

FutureBuilder<String>(
  future: fetchName(),
  builder: (context, snapshot) {
    if (!snapshot.hasData) return CircularProgressIndicator();
    return Text(snapshot.data!);
  },
)

Streams: Many Values

Un Future produce un valor; un Stream produce varios a lo largo del tiempo. Escucha con await for o un StreamBuilder.

Stream<int> counter() async* {
  for (var i = 0; i < 3; i++) {
    yield i;
  }
}

Putting It Together

Resumen: Futures para resultados únicos, async/await para código limpio, try/catch para errores y FutureBuilder para vincular datos asíncronos a widgets.

Quick Check

Un repaso rápido a Future y async/await de Dart antes de continuar.

Recap

Tienes Dart async: Future para valores futuros, async/await para código legible, try/catch para errores, y Future.wait además de FutureBuilder.

Gratis para empezar

Aprende Dart con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
22
Lecciones
88

Preguntas frecuentes

¿La lección «Programación asíncrona con Futures y async/await» es gratis?

Sí — el texto completo de «Programación asíncrona con Futures y async/await» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Flutter Mobile Development, actualiza a CoddyKit PRO. El curso de Flutter Mobile Development incluye 4 lecciones en total.

¿Qué aprenderé en «Programación asíncrona con Futures y async/await»?

Gestione operaciones diferidas en Dart y Flutter mediante Futures, async, await y el manejo de errores. Practicas Flutter Mobile Development con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Flutter Mobile Development?

No se requiere experiencia previa. Flutter Mobile Development en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Programación asíncrona con Futures y async/await»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Flutter Mobile Development?

Sí. Cada lección de Flutter Mobile Development incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Ecosistema y configuración de Flutter
  2. Fundamentos de Dart para Flutter
  3. Construcción de su primera aplicación Flutter
  4. Programación asíncrona con Futures y async/await
← Volver a Flutter Mobile Development