【问题标题】: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())

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-07
      • 2018-06-26
      • 1970-01-01
      • 2018-02-13
      • 1970-01-01
      • 2013-04-09
      • 2016-03-11
      • 2021-08-15
      相关资源
      最近更新 更多