Dart Academy · Lección

Escuchar con await for

Leer eventos a medida que llegan.

Lección 1 de 413 pasos

Escuchar con await for es una lección gratuita de Dart Academy en CoddyKit. Esta es la lección 1 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 Dart Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Dart Academy incluye 4 lecciones en total.

Qué es un Stream

Un Stream es una secuencia de valores que llegan con el tiempo, no todos a la vez. Piense en él como un Future que puede entregar muchos resultados en lugar de uno solo.

Streams frente a Futures

Un Future le proporciona un valor más adelante. Un Stream le entrega toda una serie de eventos, uno tras otro, hasta indicarle que ha terminado. 🌊

Conozca await for

El bucle await for lee los eventos de un stream a medida que llegan. Cada iteración del bucle le proporciona el siguiente valor que emite el stream.

await for (final value in stream) {
  print(value);
}

Debe estar en async

Como await for se pausa para esperar eventos, solo funciona dentro de una función marcada con async. La función se suspende hasta que el siguiente valor está listo.

Future<void> show(Stream<int> s) async {
  await for (final n in s) print(n);
}

Un Stream al que escuchar

Puede crear rápidamente un stream con Stream.fromIterable. Emite cada elemento de la lista en orden, lo que resulta perfecto para probar await for.

final stream = Stream.fromIterable([1, 2, 3]);

Recorrer los eventos

Combine ese stream con await for y el bucle se ejecutará una vez por cada valor emitido. Aquí imprime 1, luego 2 y después 3.

await for (final n in Stream.fromIterable([1, 2, 3])) {
  print(n);
}

Esperar entre eventos

Los streams reales suelen hacer pausas entre eventos. Con await for, el código simplemente espera durante esos intervalos y continúa en cuanto llega el siguiente valor. ⏳

final ticks = Stream.periodic(
    Duration(seconds: 1), (i) => i);

El bucle termina de forma natural

Cuando un stream termina de enviar eventos, envía una señal done. El bucle await for sale por sí solo y la función continúa después de él.

await for (final n in finiteStream) print(n);
print('Stream finished');

Los errores llegan al bucle

Si el stream emite un error, ese error se lanza justo en la línea de await for. Puede envolver el bucle en try/catch para gestionarlo correctamente.

try {
  await for (final n in maybeFails) print(n);
} catch (e) {
  print('Caught: $e');
}

break cancela la escucha

Usar break dentro de await for detiene el bucle y cancela silenciosamente su suscripción al stream. Ya no recibirá los eventos restantes.

await for (final n in stream) {
  if (n > 100) break;
}

Un listener a la vez

Un bucle await for se suscribe a un stream de suscripción única. Ese stream solo se puede leer una vez, por lo que un segundo bucle sobre él produciría un error.

Comprobación rápida

Compruebe lo que sabe sobre await for.

Repaso

Ha aprendido que un Stream entrega muchos valores a lo largo del tiempo y que await for los lee uno a uno dentro de una función async hasta recibir done. ¡Buen trabajo! 🎉

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
30
Lecciones
120

Preguntas frecuentes

¿La lección «Escuchar con await for» es gratis?

Sí — el texto completo de «Escuchar con await for» 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 Dart Academy, actualiza a CoddyKit PRO. El curso de Dart Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Escuchar con await for»?

Leer eventos a medida que llegan. Practicas Dart Academy 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 Dart Academy?

No se requiere experiencia previa. Dart Academy 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 1 de 4.

¿Cuánto tiempo toma la lección «Escuchar con await for»?

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 Dart Academy?

Sí. Cada lección de Dart Academy 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. Escuchar con await for
  2. Streams individuales frente a broadcast
  3. Transformar streams: map, where y take
  4. Crear streams con async*
← Volver a Dart Academy