【发布时间】:2020-04-23 00:45:48
【问题描述】:
下面.next()可以显示最后一个值:{ value: 3, done: true }:
function* genFn() {
yield 1;
yield 2;
return 3;
}
const iter = genFn();
console.log(iter.next());
console.log(iter.next());
console.log(iter.next());
但如果用作可迭代对象则不是:
function* genFn() {
yield 1;
yield 2;
return 3;
}
const iter = genFn();
console.log([...iter]);
似乎无论使用return value 还是不使用return,意思是return undefined,如果它是可迭代协议并且因此也是迭代器协议,则不使用该值。
【问题讨论】:
标签: javascript ecmascript-6 generator anti-patterns