В ES6, что происходит с аргументами при первом вызове метода `next` итератора?

Если у вас есть генератор, как,

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 }

Первый звонок.next() установитьa в123 и второй звонок, чтобы установитьb в456Однако при последнем звонке.next() это возвращение,

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

Есть ли аргумент в первом вызовеg.next теряться? Что происходит с ними? Используя приведенный выше пример, как мне установить?a

Ответы на вопрос(3)

Ваш ответ на вопрос