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}