Generator的基本用法
2024-09-01 07:15:39
Generator函数是一个状态机,封装了多个内部状态。执行一个Generator,会返回一个迭代器对象,
通过迭代器对象,可以遍历Generator函数内部的每个状态。因此,Generator函数可以看做是一个
迭代器生成器。
1. Generator基本形式
function *foo() {
yield 1;
yield 2;
yield 3;
yield 4;
yield 5;
return 6;
}
执行foo得到一个迭代器
var fooIterator = foo();
2.for-of遍历generator
通过for of可以遍历迭代器
for(let item of fooIterator){
console.log(item);
}
3.yield语句
Generator中用yield来执行一条语句,一个yield对应一个状态,yield执行完后面的语句会返回后面表达式的值,并且停留在此状态
4.状态切换
通过next()方法可以切换到下一个状态
console.log(fooIterator.next()) // {value:1,done:false}
并且next方法可以传入参数,作为上一个状态
5.yield* 语句
Generator内部调用另外一个Generator要使用yield*语句,这个内部的Generator会被打碎,内部状态会变成当前Generator的状态。如果使用yield语句执行,内部的Generator将作为一个整体被返回
最新文章
- sys模块和os模块,利用sys模块生成进度条
- HDU----(3294)Girls' research(manacher)
- HDU 1312 Red and Black --- 入门搜索 BFS解法
- 关于JS中的constructor与prototype
- java 回传参数
- HW5.7
- [Qt]No relevant classes found.
- 给你的Cordova HybridApp加入Splash启动页面
- poj 2411 Mondriaan's Dream dp
- vue+webpack构建项目
- shrio登录验证
- Django验证码【附源码】
- AntV G6绘制流程图学习例子
- log4j - 输出格式控制, PatternLayout参数含义以及详细配置
- Statement与PreparedStatement的区别
- 关系测试# 或 print(s2-s)Python 集合
- SQL2008R2数据库日志太大收缩方法
- SQL server安装连接
- 什么是ScaleIO中的forwards rebuild和backwards rebuild?
- js无缝滚动,不平滑(求高人指点)