Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación concurrente / Promesas / Exercises / Encadene una promesa

Solución: Encadene una promesa

Aquí tienes una posible solución para la tarea.

Código

my $p = start { 'raku' };
my $q = $p.then({ .result.uc });
my $r = $q.then({ .result ~ '!' });
say await $r;

🦋 Puedes encontrar el código fuente en el archivo promise-result.raku.

Salida

RAKU!

Comentarios

  1. Cada .then construye una promesa nueva que se ejecuta en cuanto la anterior está lista. Dentro de su bloque, .result es el valor que produjo la promesa anterior.

  2. El primer seguimiento convierte 'raku' en 'RAKU'; el segundo le añade '!'. Esperar la última promesa, $r, recorre la cadena entera y da 'RAKU!': una pequeña tubería en la que cada paso transforma el resultado del anterior.

Encadene una promesa   |   Espere a varias