В 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
?