¿Cuál es el efecto de utilizar el método return dentro de un generador?
Los objetos Generator tienen un método return
que termina la ejecución de la función Generator. El método return()
toma una variable opcional que es utilizada como valor de retorno de la función Generator. Al llamar return(x)
retornará un objeto con un propiedad value
igual a x
y una propiedad done
con valor true
. Después de que return()
que es llamado, los llamados subsecuentes a la sentencia yield
son ignorados.
function* funGenerator() {
yield "a";
yield "b";
yield "c";
return "completado";
}
var og = funGenerator();
var a = og.next(); // { value: 'a', done: false }
var b = og.return("return() ha sido invocado"); // { value: 'return() fue llamado', done: true }
var c = og.next(); // { value: undefined, done: true }