生成器函数(Generator Function)
- 生成器函数不能直接作为函数来使用
- 执行生成器函数会返回一个生成器对象
- 生成器函数 定义了生成器的执行内容
function* genFun() {
yeild 'state1';
yeild 'state2';
//...
return 'end';
}```
# yield 语句
yield 语句的作用并非退出函数体,而是**切出当前函数的运行(协程)**,并可以将一个值(可以是任何类型)带到**主线程**中。
# 生成器(Generator)
用于**运行**和**暂停**生成器内容和**接受其中的值**。
const gen = genFn() //
# 生成器de操作方法
class Generator {
next(value) // 获取下一个生成器切出状态。
throw(error) // 向当前生成器执行对象抛出一个错误,并终止生成器的运行。
@iterator // 暂不考虑。。。
}
# 总结
> 从语法上,可以把它理解成
> 1. GeneratorFunction 是一个状态机,封装了多个内部状态 yield 。
> 2. 执行 GeneratorFunction 会返回一个遍历器对象Generator
> 3. 遍历器对象 Generator 可以依次遍历 GeneratorFunction 内部的每一个状态 yield。