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