我想实例化一个在构造函数中接收生成器的类。
我找不到有关如何完成此操作的任何文档。
从广义上讲,我正在使用Redux-Saga,并试图通过类对异步逻辑进行概括。
class GeneratorClass {
constructor(generator) {
this.func = generator
}
}
有什么想法吗?
答案 0 :(得分: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())