【发布时间】:2020-10-18 21:17:54
【问题描述】:
我试过用谷歌搜索这个并查看类似的问题,但我似乎遗漏了一些基本的东西
let collection = {
items: [],
*[Symbol.iterator]() {
for (let item of this.items) {
yield item;
}
}
}
collection.items.push(1);
collection.items.push(2);
console.log(collection.next());
这会引发错误
console.log(collection.next());
^
TypeError: collection.next is not a function
根据我的阅读,我应该能够在集合对象上使用 next(),因为这会调用 Symbol.iterator 属性?
【问题讨论】:
-
不,
.next()在第一次调用返回的对象上。尝试在for ... of或Array.from()或类似的地方使用您的对象。 -
for (let i of collection) console.log(i);返回我推入 items 数组属性的两个数字。所以这很好用,只是下一个方法不起作用。
标签: javascript generator next