比方说,我创建了一个ES6发电机递归生成器函数中的yield(平均值)后的*(星号/星号)语法是什么?
function *createFibonacciIterator(a = 0, b = 1) {
yield b;
yield *createFib(b, b + a); // <== QUESTION IS ABOUT THIS LINE
}
然后我用的发电机,以获得前20个结果
let fibber = createFibonacciIterator();
for (let ii = 0; ii < 20; ii++) {
console.log(fibber.next());
}
如果我离开了*
出来的yield *createFib(b, b + a);
线的东西打破,这是合理的,因为我不想让一个迭代器产生一个实际值。
发生器中*
的技术含义是什么?
'yield *'委托给另一个生成器。 – Pointy
可能会产生*压扁的值,并将这些值连接成生成器函数*。 – YOU