ES6的yield*
可以用来yield其他iterable
例如:数组,字符串,或者arguments
对象,generator
对象。
function* gen1(){
yield 3;
yield 4;
}
function* gen2(){
yield* [1,2];
yield* "ab";
yield* gen1();
}
var g=gen2();
console.log(g.next().value); //1
console.log(g.next().value); //2
console.log(g.next().value); //"a"
console.log(g.next().value); //"b"
console.log(g.next().value); //3
console.log(g.next().value); //4
注:
如果yield*
后面不是iterable
会报错。