Let's say I've created an ES6 generator
function *createFibonacciIterator(a = 0, b = 1) {
yield b;
yield *createFib(b, b + a); // <== QUESTION IS ABOUT THIS LINE
}
Then I use that generator to get the first 20 results
let fibber = createFibonacciIterator();
for (let ii = 0; ii < 20; ii++) {
console.log(fibber.next());
}
If I leave the *
out of the yield *createFib(b, b + a);
line things break, which makes sense because I don't want yield an iterator but an actual value.
What's the technical meaning of *
in the generator?