function* generatorFunction() {
yield (yield 1)(yield 2)(yield 3)();
}
var iterator = generatorFunction();
// [1, 2, 3]
var iteratedOver = [iterator.next().value, iterator.next().value, iterator.next().value];
我不确定这是如何工作的。
yield
不返回函数引用,那么圆括号语句像 (yield 2)
是什么意思 - 它们是没有主体的箭头函数吗?它们如何使用偏应用程序调用?我在这里缺少了一些东西,有人能解释一下吗?
更新:尝试在三个浏览器上操作,Chrome 50.0.2661.86、Safari 9.1 (50.0.2661.86)、Firefox 44.0.2,都可以正常运行。 ESFiddle 也可以无误地执行它。
评论员报告 Babel 也可以无错误地执行。
问题来源于 http://tddbin.com/#?kata=es6/language/generator/send-function,第二个 kata。
yield
返回你传入.next(…)
的任何内容。你很幸运只调用了.next()
两次,否则下一次会抛出异常。 - Bergiyield
。 - Ben