Escuchar con await for
Leer eventos a medida que llegan.
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! 🎉
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
- Escuchar con await for
- Streams individuales frente a broadcast
- Transformar streams: map, where y take
- Crear streams con async*