ES6 生成器(Generator)
什么是生成器?
生成器就是通过构造函数Generator创造出来的对象,生成器既是一个迭代器,同时也是一个可迭代对象
基本用法
基本语法:
function* myGenerator() {
yield 'one';
yield 'two';
return 'three';
}
var g = myGenerator();
g.next(); // { value: 'one', done: false }
g.next(); // { value: 'two', done: false }
g.next(); // { value: 'three', done: true }
g.next(); // { value: undefined, done: true }
分析Generator的执行过程:
- 第一次调用,Generator函数开始执行,直到遇到第一个yield表达式为止
- 第二次调用,Generator函数从上次yield表达式停下的地方,一直执行到下一个yield表达式
- 第n-1次调用,Generator函数从上次yield表达式停下的地方,一直执行到return语句(如果没有return语句,就执行到函数结束)
- 第n次