Explicación sencilla de las funciones en Javascript
// funciones-generador
// yeld es una palabra clave dentro de las funciones generador similar a return
// a dferencia de return, yeld suspende la ejecución para que pueda ser retomada luego
function* quips(name) {
yield "hello " + name + "!";
yield "i hope you are enjoying the blog posts";
if (name.startsWith("X")) {
yield "it's cool how your name starts with X, " + name;
}
yield "see you later!";
}
var iter = quips("jorendorff");
iter.next();
// Cada vez que se llama a next() se retoma la función y se pasa al siguiente yeld
// Además del valor la función regresa una variable done para informar el estado del
// proceso en general: { value: "hello jorendorff!", done: false }
// cuando finaliza, el último valor es undefined: { value: undefined, done: true }