如果你有一个生成器,比如,
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
?
最佳答案
尝试:
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 }
关于javascript - 在 ES6 中,第一次调用迭代器的 `next` 方法时参数会发生什么变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21271216/