0
正如问题所述,将一个值传递给第一个iterator.next()
调用是否有意义,还是会被忽略?作为一个例子:在第一次对生成器迭代器的下一次调用中包含一个值是否合理?
function* foo(x) {
var y = 2 * (yield(x + 1));
var z = yield(y/3);
return (x + y + z);
}
var it = foo(5);
// note: not sending anything into `next()` here
console.log(it.next()); // { value:6, done:false }
console.log(it.next(12)); // { value:8, done:false }
console.log(it.next(13)); // { value:42, done:true }
通知没有被传递给第一next()
的值。然而,在我试图学习的文章中,它继续说道:
但是,如果我们确实将值传递给第一个下一个(..)调用,那么不会发生任何错误。这只是一个抛弃的价值
好的。这就说得通了。但是现在我很想知道是否有一个用例(或者甚至有可能利用),如果传递一个值有一个好处。
文章:https://davidwalsh.name/es6-generators
在* next *调用中传递的参数会替换前一个* yield *表达式返回的值。由于在第一次调用时没有以前的* yield *,所以没有什么可替代的,所以似乎没有包含它的任何用例。 – RobG