# generator函数
generator(生成器)是ES6标准引入的新的数据类型,一个generator看上起像一个函数,但是可以返回多次.
```
```
* next\(\)方法会执行一个generator的代码,然后每次遇到yield x;就返回一个对象{value:x,done:true/false},然后暂停。返回的value就是yield的返回值,done表示这个generator是否已经执行结束了,如果为done为true则value就是return的返回值。
* 当执行到done为true时,这个generator对象就已经全部执行完毕,就不要再继续调用next\(\)
* 第2个方法就是直接调用for...of循环迭代generator对象,这种方式不需要我们自己判断done
#### 优点
generator:可以把异步代码变成“同步”代码
```
```