Generator函数是ES6提供的一种异步编程解决方案。

Generator函数有多种理解角度。语法上,首先可以把他理解成:Generator函数是一个状态机,封装了多个内部状态。

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

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

function* helloGenerator() {
yield 'hello'
yield 'world'
return 'ending'
}
var hw = helloGenertor()