function*fn(arg){
console.log(arg);// AAAlet one =yield1;
console.log(one);// BBBlet two =yield2;
console.log(two);// CCClet three =yield3;
console.log(three);// DDD}// 执行获取迭代器对象let iterator =fn('AAA');
iterator.next();// 从第二次开始next的参数会成为yield的返回值
iterator.next('BBB');
iterator.next('CCC');
iterator.next('DDD');
给生成器函数异步传参
functiongetname(){setTimeout(()=>{let name ='zhangsan';
iterator.next(name);},1000)}functiongetdata(){setTimeout(()=>{let data ='data';
iterator.next(data);},2000)}functiongettime(){setTimeout(()=>{let time ='time';
iterator.next(time);},3000)}function*fn(){getname();// 可以使用一个变量去接收yield的返回值,yield返回上一次调用iterator.next()的参数let one =yield;
console.log(one);getdata();let two =yield;
console.log(two);gettime();let three =yield;
console.log(three);}let iterator =fn();
iterator.next();