生成器generater 在声明函数是 funcuntion* 使用关键词 yield 来对代码进行分段执行
yeild 可以接收next()函数传递过来的值 每次next()会执行到下一个yeild之前
function* gen(){
let v1 = 123;
console.log(v1);
let n1 = yield ;
console.log(n1); //值为1
let v2 = n1+ 10;
console.log(v2);
let n2 = yield;
console.log(n2);//211
let v3 = 222;
console.log(v3);
let n3 = yield v3+12;
console.log(n3);
console.log("end");
}
const generate = gen();
console.log(generate);
generate.next();// 123
generate.next(1);// 1
generate.next(211);
generate.next();
iterator 迭代器
对一个可迭代引用类型数据进行迭代 使用.next() 函数调用下个数值
let arr = [1,20,3,4,5,6];
let arr_i = arr[Symbol.iterator]();
console.log(arr_i)
console.log(arr_i.next())//1
console.log(arr_i.next())//20