yield*expression用于委托给另一个generator或可迭代对象
<h1>语法</h1>
yield*[[expression]];
expression:返回一个可迭代对象的表达式。
<h1>描述</h1>
yield表达式迭代操作数,并yield它返回的每个值。
yield表达式本身的值是当迭代器关闭时返回的值(即,当done时为true)。
<h1>示例</h1>
<h3>例子:委托给其他生成器</h3>
function* g1(){
yield 2;
yield 3;
yield 4;
}
function* g2(){
yield 1;
yield* g1(); //,g1() yield 出去的每个值都会在 g2() 的 next() 方法中返回,就像那些 yield 语句是写在 g2() 里一样。
yield 5;
}
var iterator=g2();
console.log(iterator.next()); // { value: 1, done: false }
console.log(iterator.next()); // { value: 2, done: false }
console.log(iterator.next()); // { value: 3, done: false }
console.log(iterator.next()); // { value: 4, done: false }
console.log(iterator.next()); // { value: 5, done: false }
console.log(iterator.next()); // { value: undefined, done: true }
网友评论