Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación reactiva / await / Exercises / Espere un fallo

Solución: Espere un fallo

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

Código

my $p = start { die 'boom' };

try {
    await $p;
    CATCH {
        default { say "caught: {.message}" }
    }
}

🦋 Puedes encontrar el código fuente en el archivo await-failure.raku.

Salida

caught: boom

Comentarios

  1. El bloque de la promesa lanza una excepción, así que la promesa queda rota. La excepción no se pierde: se guarda hasta que alguien espera la promesa.

  2. await $p la relanza justo ahí, donde el fáser CATCH la trata como cualquier excepción corriente. Así es como los errores del trabajo en segundo plano afloran allí donde esperas el resultado.

← Espere un fallo   |   Programación web →