generator是函数生成器
在定义时,在function和函数名之间加一个 “ * ”
内部使用yield关键字,这个关键字类似return,返回一个结果并让函数暂停。当在粗回到这个函数时,继续执行下面的代码到下一个yield;
用next()依次调用
function *A(){
console.log('我是小卓');
yield '我去钓鱼';
console.log('我是小敏');
yield '我去煮鱼';
console.log('小卓和小敏');
return '一起吃鱼';
}
var a=A();
var first=a.next();
function *A(){
console.log('我是小卓');
yield '我去钓鱼';
console.log('我是小敏');
yield '我去煮鱼';
console.log('小卓和小敏');
return '一起吃鱼';
}
var a=A();
var first=a.next();
var second=a.next();
function *A(){
console.log('我是小卓');
yield '我去钓鱼';
console.log('我是小敏');
yield '我去煮鱼';
console.log('小卓和小敏');
return '一起吃鱼';
}
var a=A();
var first=a.next();
var second=a.next();
var third=a.next();
function *A(){
console.log('我是小卓');
yield '我去钓鱼';
console.log('我是小敏');
yield '我去煮鱼';
console.log('小卓和小敏');
return '一起吃鱼';
}
var a=A();
var first=a.next();
console.log(first)
var second=a.next();
console.log(second)
var third=a.next();
console.log(third)