Generator
Generator 函数是一个普通函数。
区别:
- function关键字与函数名之间有一个星号。(ES6 没有规定,function关键字与函数名之间的星号,写在哪个位置都能通过。)
- 函数体内部使用yield表达式,定义不同的内部状态(yield在英语里的意思就是“产出”)。
- 调用 Generator 函数后,该函数并不执行,返回的也不是函数运行结果,而是一个指向内部状态的指针对象,也就是遍历器对象(Iterator Object)。必须调用遍历器对象的 next() 方法,使得指针移向下一个状态
function * helloWorldGenerator() {
yield console.log('hello');
yield console.log('world');
return console.log('ending');
}
var hw = helloWorldGenerator()