6

次のようなジェネレーターがある場合は、

function* f () {
  // Before stuff.
  let a = yield 1;
  let b = yield 2;
  return [a,b];
}

そして、実行します

var g = f();
// this question is over this value.
g.next(123); // returns: { value: 1, done: false }
g.next(456); // returns: { value: 2, done: false }
g.next(); // returns: { value: [ 456, undefined ], done: true }

set への最初の呼び出しと.next()seta123の 2 番目の呼び出しですb456、これへの最後の呼び出しで.next()は return です。

{ value: [ 456, undefined ], done: true }

最初の呼び出しの引数はg.next失われますか? 彼らはどうなりますか?上記の例を使用して、どのように設定しaますか?

4

3 に答える 3

4

試す:

var g = f();
// this question is over this value.
g.next(); // returns: { value: 1, done: false }
g.next(123); // returns: { value: 2, done: false }
g.next(456); // returns: { value: [123, 456], done: true }
于 2014-01-22T03:06:25.767 に答える