ES6 – yield keyword and calling other generators

Hi, the “yield” keyword inside a generator function takes an iterable object as the expression and iterates it to yield its values.
Example of how “yield” works:
function* my_first_generator_function() {
yield 100;
yield 200;
}
let generator = my_first_generator_function();
console.log("value --->", generator.next().value);
console.log("value --->", generator.next().value);
console.log("done --->", generator.next().done);
Result:

Calling other generators inside a generator
Yes, is possible to call other generators inside other generators and to do that we need to use yield* and the name of the generator that we want to execute, take a look of this code example:
function* my_first_generator_function() {
yield 100;
yield 200;
yield* my_second_generator_function();
yield* [400, 500, 600];
}
function* my_second_generator_function() {
yield "Hi there!";
yield "Im in the second generator!";
}
let generator = my_first_generator_function();
console.log("value --->", generator.next().value); // 100
console.log("value --->", generator.next().value); // 200
console.log("value --->", generator.next().value); // Hi there!
console.log("value --->", generator.next().value); // I'm in the second generator!
console.log("value --->", generator.next().value); // 400
console.log("value --->", generator.next().value); // 500
console.log("value --->", generator.next().value); // 600
console.log("done --->", generator.next().done); // true - because theres is not more values in the generator function
Result:

By Cristina Rojas.