返回信息流看了一下generator yield手册:
<https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function*>
> A return statement in a generator, when executed, will make the generator done. If a value is returned, it will be passed back as the value. A generator which has returned will not yield any more values.
例如:
``` javascript
function* gen(x){
yield x + 2;
return x + 20;
}
var g = gen(1);
g.next(); // {value: 3, done: false}
g.next(); // {value: 21, done: true} 这里确实value是return的值
```
可是下面的例子怎么就不是啦??
``` javascript
function* gen(x){
var y = yield x + 2;
return y;
}
var g = gen(1);
g.next(); // {value: 3, done: false}
g.next(); // {value: undefined, done: true} 这里确实value是竟然是undefined?????
```
求教[ema16][ema16][ema16]
这是一条镜像帖。来源:北邮人论坛 / java-script / #2325同步于 2017/6/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
JavaScript机器人发帖
generator的return值问题
he50288
2017/6/18镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
楼上说的都对。
[yield](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/yield)