我期望 4 成为序列数组的一部分,为什么它被跳过了?
function* generate() {
yield 1;
yield 2;
yield 3;
return 4
}
let sequence = [...generate()];
console.log(sequence); // 1, 2, 3Run Code Online (Sandbox Code Playgroud)
javascript functional-programming generator ecmascript-6 spread-syntax
如果你有像这样的发电机,
function* f () {
// Before stuff.
let a = yield 1;
let b = yield 2;
return [a,b];
}
Run Code Online (Sandbox Code Playgroud)
然后,跑
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 }
Run Code Online (Sandbox Code Playgroud)
第一次调用.next()设置a为123和第二次调用设置b为456,但是在最后一次调用时.next()返回,
{ value: [ 456, …Run Code Online (Sandbox Code Playgroud)