ES6 Generator 学习笔记一

Posted Lulin1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6 Generator 学习笔记一相关的知识,希望对你有一定的参考价值。

  Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。

  Generator 函数有多种理解角度。从语法上,首先可以把它理解成,Generator 函数是一个状态机,封装了多个内部状态。  执行 Generator 函数会返回一个遍历器对象,也就是说,Generator 函数除了状态机,还是一个遍历器对象生成函数。返回的遍历器对象,可以依次遍历 Generator 函数内部的每一个状态。

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

 

  yield表达式与return语句既有相似之处,也有区别:  

  相似之处在于,都能返回紧跟在语句后面的那个表达式的值。区别在于每次遇到yield,函数暂停执行,下一次再从该位置继续向后执行,而return语句不具备位置记忆的功能。一个函数里面,只能执行一次(或者说一个)return语句,但是可以执行多次(或者说多个)yield表达式。正常函数只能返回一个值,因为只能执行一次return;Generator 函数可以返回一系列的值,因为可以有任意多个yield。从另一个角度看,也可以说 Generator 生成了一系列的值,这也就是它的名称的来历(英语中,generator 这个词是“生成器”的意思)。

以上是关于ES6 Generator 学习笔记一的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript学习笔记(十三)——生成器(generator)

js-ES6学习笔记-Generator函数

ES6学习笔记—— async 函数

js-ES6学习笔记-Generator函数的异步应用

ES6 从入门到精通 # 16:Generator 的应用

ES6 从入门到精通 # 16:Generator 的应用