¿Cómo arrojar un error en una función de generador asíncrono en JavaScript?

En este artículo, intentaremos comprender cómo arrojar un error en una función generadora síncrona (abreviada como «async») en JavaScript con la ayuda de ejemplos teóricos y de codificación.

Primero echemos un vistazo a la siguiente sección que nos mostrará la sintaxis para declarar una función de generador asíncrono .

Sintaxis:

async function* function_name () {
    ...
}

Aprenderemos sobre la declaración de la función de generador asíncrono y sabremos cómo arrojar un error en una función de generador asíncrono.

Ejemplo 1: En este ejemplo, usaremos la palabra clave throw para un error usando un objeto de error que contendrá un mensaje de error pasado por el usuario según el requisito, y luego detectaremos ese error usando una instrucción catch.

Javascript

<script>
    async function* generator() {
        throw new Error("Error thrown from an "
            + "async generator function....!!!");
    }
  
    let iterator = generator();
  
    iterator
        .next()
        .then((result) => console.log(result.value))
        .catch((error) => console.log(error.message));
</script>

Producción:

Error thrown from an async generator function....!!!

Ejemplo 2: En este ejemplo, usaremos la palabra clave yield mediante la cual detectaremos el error en la última parte de nuestro código. Además, declararemos una promesa cuyo estado es rechazado y que contiene el mensaje de error en el método de rechazo() dentro de ella y luego la atraparemos usando una instrucción catch.

Javascript

<script>
    async function* generator() {
        yield new Promise((resolve, reject) => {
            reject("Error thrown from an async "
                + "generator function....!!!");
        });
    }
  
    let iterator = generator();
  
    iterator
        .next()
        .then((result) => console.log(result.value))
        .catch((error) => console.log(error));
</script>

Producción:

Error thrown from an async generator function....!!!

Publicación traducida automáticamente

Artículo escrito por amansingla y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *