考虑以下 Python 代码:
it = iter([1, 2, 3, 4, 5])
for x in it:
print x
if x == 3:
break
print '---'
for x in it:
print x
它打印出1 2 3 --- 4 5
,因为迭代器it
在循环中记住了它的状态。当我在JS中做看起来相同的事情时,我得到的只有1 2 3 ---
。
function* iter(a) {
yield* a;
}
it = iter([1, 2, 3, 4, 5])
for (let x of it) {
console.log(x)
if (x === 3)
break
}
console.log('---')
for (let x of it) {
console.log(x)
}
我错过了什么?