【发布时间】:2019-06-20 14:15:25
【问题描述】:
我想为正在运行的生成器提供数据。
这只是 JavaScript 代码,代码本身可以运行任何浏览器控制台。
function* getNumbers() {
yield 1
yield 5
yield 10
}
// retrieving
const getThoseNumbers = getNumbers()
console.log(getThoseNumbers.set())
console.log(getThoseNumbers.update())
我希望下一个 yield 值像 5 或 10。
但我收到以下错误消息
TypeError:getThoseNumbers.set 不是函数
TypeError:getThoseNumbers.update 不是函数
【问题讨论】:
-
你为什么期望generators 拥有
set或update? -
如果您期望下一个产生的值,使用
.next()方法?但这从生成器获取数据,而不是向生成器提供数据。我不知道你打算set或update做什么。 -
如果你真的想“向生成器提供数据”,你实际上可以在调用 next 来修改一些内部状态时提供一个值。 Here's a MDN article on it。在底部有一个关于高级生成器的部分。
标签: javascript generator