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值。