javascript:如何使用生成器作为类的方法

我的课堂看起来像这样:

class Test { constructor() { } *test() { console.log('test'); let result = yield this.something(); return result; } something() { console.log('something'); return new Promise((resolve, reject) => { resolve(2); }); } } 

但是,当我从Test创build一个对象,并调用test()方法,我没有得到预期的结果…

 let test = new Test(); console.log(test.test()); // {} 

以为它会返回2

日志也不显示。

我在这里做错了什么?

它正常工作。 你需要通过testing方法调用next()返回的值。

 let test = new Test(); console.log(test.test().next()); 

产量

 test something { value: Promise { 2 }, done: false } 

通过调用test.test()您正在创build新的生成器实例。 然后你应该在创build的实例上调用next()函数来生成发生器的yield值。