Generators: Disparar errores dentro de un Generador

Generators: Disparar errores dentro de un Generador

¿Cómo disparar errores dentro de una función generator?

Si un error es encontrado dentro de una función Generator, entonces el error será disparado por la llamada next() que de con este error. La llamada next() que llama el error retornará un valor undefined y los valores adicionales de la sentencia yield serán ignorados. Las llamadas subsecuentes a next() después del error también retornarán undefined.

Note el efecto de disparar error por parte de una función Generator.

function* funcGenerator() {
    yield "a";
    yield "b";
    throw new Error("error disparado por la función funcGenerator()");
    yield "c";
    yield "d";
}

var objGenerator = funcGenerator();

try {
    var a = objGenerator.next(); // { value: 'a', done: false }
    var b = objGenerator.next(); // { value: 'b', done: false }
    var c = objGenerator.next(); // undefined <- esta es la que dispara el error
    var d = objGenerator.next(); // undefined <- las otras llamadas a yield son ignoradas después del error
} catch (e) {
    console.log(e.message);
}

VPN

  • Ir a la oferta de NordVPN

Moda

Accesorios