【发布时间】:2017-05-16 17:42:11
【问题描述】:
我找到了这个例子,我很惊讶生成器的最终值是从生成器中获取的。这是代码:
function* foo() {
yield 'a';
yield 'b';
yield 'c';
}
const [...values] = foo();
根据我对生成器的理解,我认为解构生成器执行相当于:
const array = [];
for(const val of foo()) {
array.push(val)
}
所以,我的问题是:这是获取生成器函数值的有效方法吗?还有哪些其他方法可以实现这一点?
【问题讨论】:
-
这对我来说似乎是正确的
-
"这是一种有效的方法吗?" --does it work? Yes? Then it's valid.“还有什么其他方法可以实现这一点?”很多;对于 SO 来说,这可能是一个过于宽泛的问题。
-
它是有效的,但恕我直言,它的可读性不如
const values = [...foo()]甚至const values = Array.from(foo())。
标签: javascript ecmascript-6 destructuring