【问题标题】:Combining JavaScript generators and classes结合 JavaScript 生成器和类
【发布时间】:2018-11-28 20:19:51
【问题描述】:
我想在构造函数中实例化一个接收生成器的类。
我找不到任何有关如何完成此操作的文档。
在更广泛的意义上,我正在使用 Redux-Saga 并尝试通过类来概括异步逻辑。
class GeneratorClass {
constructor(generator) {
this.func = generator
}
}
有什么想法吗?
【问题讨论】:
标签:
javascript
ecmascript-6
generator
redux-saga
【解决方案1】:
您可以简单地将生成器的标识符传递给构造函数:
class GeneratorClass {
constructor(generator) {
this.func = generator
}
}
function* generator() {
yield 1;
yield 10;
}
myGenerator = new GeneratorClass(generator)
console.log(myGenerator.func().next())
您也可以使用包装函数将参数传递给生成器:
class GeneratorClass {
constructor(generator, start) {
this.func = generator(start)
}
}
function generator(i) {
return function*() {
yield i + 1;
yield i + 10;
}
}
myGenerator = new GeneratorClass(generator, 10)
console.log(myGenerator.func().next())