Future.wait y trabajo paralelo
Ejecutar varios futures simultáneamente.
Future.wait y trabajo paralelo es una lección gratuita de Dart Academy 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 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.
Esperar uno por uno es lento
Esperar los Futures en secuencia hace que cada uno espere al anterior. Por tanto, tres llamadas de un segundo tardan tres segundos en total.
Iniciarlos juntos
Inicie primero las llamadas asíncronas independientes y después espérelas. Se ejecutan de forma concurrente, por lo que el tiempo total depende de la más lenta, no de la suma.
Conozca Future.wait
Future.wait recibe una lista de Futures y devuelve un Future que se completa cuando todos terminan.
final results = await Future.wait([a(), b(), c()]);Los resultados mantienen el orden
Future.wait le proporciona una lista de resultados en el mismo orden que los Futures de entrada, sin importar cuál terminó primero.
final list = await Future.wait([one(), two()]);
print(list[0]); // result of one()Ahorro de tiempo real
Tres Futures paralelos de un segundo terminan juntos en aproximadamente un segundo, porque Future.wait superpone las esperas.
Si uno falla
De forma predeterminada, si algún Future produce un error, Future.wait se completa inmediatamente con ese error, aunque los demás todavía estén ejecutándose.
Continuar con eagerError
Indique eagerError: false y Future.wait seguirá esperando a que terminen todos los Futures antes de informar del primer error detectado.
await Future.wait(tasks, eagerError: false);Competir con Future.any
¿Solo necesita el resultado más rápido? Future.any se completa en cuanto tiene éxito el primer Future de la lista.
final fastest = await Future.any([mirrorA(), mirrorB()]);Construir la lista
Un patrón habitual consiste en aplicar map a las entradas para crear una lista de Futures y pasarla directamente a Future.wait.
await Future.wait(ids.map(fetchUser));Concurrencia, no hilos paralelos
Esto es concurrencia en un solo isolate: el bucle de eventos intercala los tiempos de espera. Para trabajos que requieren mucho procesamiento de CPU, utilizaría isolates.
Cuándo utilizar cada uno
Utilice Future.wait cuando necesite todos los resultados y Future.any cuando solo necesite que llegue el primero. ⚖️
Comprobación rápida
Comprobación rápida sobre la ejecución conjunta de Futures.
Resumen: Futures paralelos
Ha aprendido a solapar trabajo asíncrono con Future.wait para obtener todos los resultados, a usar Future.any para obtener el más rápido y a comprender cómo se comportan los errores. 🏁
Preguntas frecuentes
¿La lección «Future.wait y trabajo paralelo» es gratis?
Sí — el texto completo de «Future.wait y trabajo paralelo» 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 «Future.wait y trabajo paralelo»?
Ejecutar varios futures simultáneamente. 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 4 de 4.
¿Cuánto tiempo toma la lección «Future.wait y trabajo paralelo»?
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
- El bucle de eventos y los microtasks
- Crear y esperar Futures
- Gestión de errores en código async
- Future.wait y trabajo paralelo