yield 传参
解析:最终结果是 8 而不是 6 ——因为第一次执行 genObj.next (6) 遇到 yield就不再往下执行了,也就是第一次传的参没能到达终点输出,第二次next则把 8成功传给了a并成功输出打印。
使用generator 也可以像普通函数那样传参,如:
yield 返回
解析:通过结果可以看出第一个是返回的值,第二个是判断是否完成(执行完)
第二个为什么是undefined呢——因为执行第二次的next方法,已经是最好一道程序了,没有yeild了,返回不了数据。这时如果想要返回值,我们可以手动写return ,如下: