Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación concurrente / Promesas / Exercises / Espere a varias
Solución: Espere a varias
Aquí tienes una posible solución para la tarea.
Código
my @words = <apple pear plum>;
my @jobs = @words.map(-> $w { start { $w.uc } });
say await @jobs;🦋 Puedes encontrar el código fuente en el archivo await-many.raku.
Salida
(APPLE PEAR PLUM)Comentarios
@words.map(-> $w { start { $w.uc } })convierte cada palabra en su propia promesa, así que las tres pasan a mayúsculas de forma concurrente. El bloque con flecha nombra la palabra$w, de modo que cada promesa captura la correcta.await @jobsespera la lista entera y devuelve los resultados en su orden original, dando(APPLE PEAR PLUM).