generator函数定义
- function 关键字和函数之间有一个星号(*),且内部使用yield表达式,定义不同的内部状态。
调用Generator函数后,该函数并不执行,返回的也不是函数运行结果,而是一个指向内部状态的指针对象。
next参数用于设置上一次执行的返回值
代码实验:
function *fn(x){
var y = 1
yield y+1;
var s=yield y+2;//使用变量接收下一次传入的值
yield y+3;
return s;
}
let s=fn(7);
console.log(s.next());
console.log(s.next());
console.log(s.next(3));//给变量s传值
console.log(s.next(4));//无效参数
结果展示: