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

  1. @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.

  2. await @jobs espera la lista entera y devuelve los resultados en su orden original, dando (APPLE PEAR PLUM).

Espere a varias   |   Cumplida o rota