本帖最后由 云烟成雨 于 2022-8-1 10:27 编辑
https://www.runoob.com/w3cnote/es6-generator.html
Generator函数,菜鸟上面yield* 表达式 的示例会报错,那个等同于会报错,而且那个next的值为什么会传到第二个函数里,有点不理解,
谁能解释一下,并修复一下那个等同于那里的bug?
具体代码如下:
[JavaScript] 纯文本查看 复制代码 function* callee() {
console.log('callee: ' + (yield));
}
// 等同于
function* caller() {
while (true) {
for (var value of callee) {
yield value;
}
}
}
const callerObj = caller();
callerObj.next();
callerObj.next("a");
callerObj.next("b");
报错:Uncaught TypeError: callee is not iterable
改成callee()后不报错了,但是next的值无法传递过去了,他这个等同于好像并没有完全等同,还有什么等同的方法吗? |