javascript - 组合 JavaScript 生成器和类

标签 javascript ecmascript-6 generator redux-saga

我想实例化一个在构造函数中接收生成器的类。

我找不到任何有关如何完成此操作的文档。

从更广泛的意义上来说,我正在使用 Redux-Saga 并尝试通过类来概括异步逻辑。

class GeneratorClass {
    constructor(generator) {
        this.func = generator
    }
}

有什么想法吗?

最佳答案

您可以简单地将生成器的标识符传递给构造函数:

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())

关于javascript - 组合 JavaScript 生成器和类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50935683/

相关文章:

javascript - 为什么这个 for 循环只迭代一次?

javascript - 如何将字符串从 swift 传递到 javascript

javascript - jQuery $.get 的效率如何?

javascript - 如何遍历 react 状态变量数组并确定它是否有一个真值

javascript - 如何在 JS (ES6) 中获取带点格式字符串的嵌套对象

javascript - 如何在 Javascript 中暂停事件?

javascript - 未启用 ES7 属性初始值设定项的柯里化(Currying)函数

python - 类似于 append 行为的生成器表达式

python - 为什么在这种情况下使用生成器函数的速度是原来的两倍?

Python——迭代一个迭代器两次