Generator 就是一种状态机,封装多个内部状态。

执行 Generator 函数会返回一个遍历器对象(),也就是说,Generator 函数除了状态机,还是一个遍历器对象生成函数。返回的遍历器对象,可以依次遍历 Generator 函数内部的每一个状态。

形式上,Generator 函数是一个普通函数,但是有两个特征。一是,function关键字与函数名之间有一个星号;二是,函数体内部使用yield表达式,定义不同的内部状态(yield在英语里的意思就是“产出”)。

然后,Generator 函数的调用方法与普通函数一样,也是在函数名后面加上一对圆括号。不同的是,调用 Generator 函数后,该函数并不执行,返回的也不是函数运行结果,而是一个指向内部状态的指针对象,也就是上一章介绍的遍历器对象(Iterator Object)。

下一步,必须调用遍历器对象的next方法,使得指针移向下一个状态。也就是说,每次调用next方法,内部指针就从函数头部或上一次停下来的地方开始执行,直到遇到下一个yield表达式(或return语句)为止。换言之,Generator 函数是分段执行的,yield表达式是暂停执行的标记,而next方法可以恢复执行

详情:http://es6.ruanyifeng.com/#docs/generator

最新文章

  1. 【填坑向】spoj COT/bzoj2588 Count on a tree
  2. Android架构:用消息机制获取网络数据
  3. Berkeley 四种产品如何选择?
  4. Linux大量TIME_WAIT的解决办法
  5. STS中搭建SpringMVC工程
  6. linux Kernell crash dump------kdump 的安装设置+Linux系统崩溃的修复解决过程+mysql+kvm
  7. Android项目----dispathTouchEvent
  8. 201521123113 《Java程序设计》第2周学习总结
  9. IDEA- idea代码调试debug
  10. uva208
  11. react路由
  12. Redis服务搭建与基础功能示例
  13. 文件夹生成zip
  14. 元素的组合(dfs)
  15. Django ORM中使用update_or_create功能再解
  16. HUE配置文件hue.ini 的mapred_clusters模块详解(图文详解)(分HA集群和非HA集群)
  17. js 实现复制到粘贴板功能
  18. C语言程序设计I—第五周教学
  19. 部分函数依赖 && 完全函数依赖
  20. 【转】利用 Apache JMeter 测试 WebSphere 性能

热门文章

  1. Linux 进程及作业管理
  2. ansible yum 模块 安装 vsftp
  3. 洛谷 P1134 阶乘问题
  4. 阿里云Linux系统安装配置Tomcat方法
  5. Maven学习总结(25)——Eclipse Maven Update 时JDK版本变更问题
  6. QT5 OpenGL (六, 键盘事件, 开关灯,放大缩小综合运用)
  7. 【转载】linux下的usb抓包方法
  8. [CSS3] Image Width with sizes (srcset & sizes)
  9. [Angular] Handle HTTP Errors in Angular with HttpErrorResponse interface
  10. OKHttp使用简介