文章插图
生成器是由生成器的函数和生成器的迭代器组成 , 通过构造函数Generator创建的对象 , 生成器也是一种迭代器 , 同时又是一个可迭代对象 , 但是只能对其迭代一次 。这是因为它们并没有把所有的值存在内存中 , 而是在运行时生成值 。你通过遍历来使用它们 , 要么用一个“for”循环 , 要么将它们传递给任意可以进行迭代的函数和结构 。大多数时候生成器是以函数来实现的 。
文章插图
创建生成器:生成器的创建 , 必须使用生成器函数(Generator Function) 。
生成器函数的写法:
function*method(){
}
执行生成器函数内部:生成器函数内部是为了给生成器的每次迭代提供的数据;每次调用生成器的next方法 , 将导致生成器函数运行到下一个yield关键字位置;yield是一个关键字 , 该关键字只能在生成器函数内部使用 , 表达“产生”一个迭代数据 。
需要注意的细节:
1、生成器函数可以有返回值 , 返回值出现在第一次done为true时的value属性中;
2、调用生成器的next方法时 , 可以传递参数 , 传递的参数会交给yield表达式的返回值;
3、第一次调用next方法时 , 传参没有任何意义;
4、在生成器函数内部 , 可以调用其他生成器函数 , 但是要注意加上*号 。
生成器的其他API:
return方法:调用该方法 , 可以提前结束生成器函数 , 从而提前让整个迭代过程结束;
【由什么组成的生成器 是由什么做成的生成器】throw方法:调用该方法 , 可以在生成器中产生一个错误 。
推荐阅读
- 破壁机破壁什么意思 破壁机破壁啥意思
- 西洋参和什么泡对女人好 女人能天天喝西洋参泡水吗
- 标的公司是什么意思 什么是标的公司
- 西洋参什么时候吃最好早上还是晚上 西洋参是上火还是降火的
- 西洋参煲鸡可以放什么材料 西洋参煲鸡小孩能喝吗
- 家里什么样的花又好看又好养 室内最好养的花卉有哪些
- 什么牌子的奶瓶最安全好用 什么牌子的奶瓶好
- 请问女人补肾用什么药 女人肾脏不好吃什么药可以治
- 杭州下城区有什么好玩的
- 卫生间的洗手台选择哪种材质比较好 洗手台面用什么石材好