相关疑难解决方法(0)

在生成器上使用扩展语法时为什么不检索返回值

我期望 4 成为序列数组的一部分,为什么它被跳过了?

function* generate() {
  yield 1;
  yield 2;
  yield 3;
  return 4
}
let sequence = [...generate()];
console.log(sequence); // 1, 2, 3
Run Code Online (Sandbox Code Playgroud)

javascript functional-programming generator ecmascript-6 spread-syntax

7
推荐指数
1
解决办法
110
查看次数

在ES6中,第一次调用迭代器的`next`方法时参数会发生什么?

如果你有像这样的发电机,

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()设置a123和第二次调用设置b456,但是在最后一次调用时.next()返回,

{ value: [ 456, …
Run Code Online (Sandbox Code Playgroud)

javascript v8 generator ecmascript-harmony

5
推荐指数
1
解决办法
362
查看次数