ES6-ES11(Day10)

29 阅读1分钟

ES6-生成器(Generator)函数的声明与调用

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

特点:

1、function与函数名之间有 "*" 星号间隔

2、函数体内部使用yield语句,定义不同的内部状态

3、Generator函数的调用方法与普通函数一样,也是在函数名后面加上一对圆括号。

4、调用Generator函数后,该函数并不执行

5、若想要函数执行,须调用其内部的next方法

6、当函数执行完成后继续调用next方法,不会报错也不会指向

       function * gen(){

           console.log('111');

           yield 'zhenqiguai';

           console.log('222');

           yield '天天天天';

           console.log('333');

           yield 'asdfg';

           console.log('444');

       }

       let Generator=gen();

       console.log(Generator.next());

//结果:111    {value: 'zhenqiguai', done: false}

       console.log(Generator.next());

//结果:222    {value: '天天天天', done: false}

       console.log(Generator.next());

//结果:333    {value: 'asdfg', done: false}

       console.log(Generator.next());

//结果:444    {value: undefined, done: true}