Generator
Generator:生成器函数(ES6新增的)
Iterator:迭代器(for of只能遍历可被迭代的值)
生成器对象是由一个 generator function 返回的,并且它符合可迭代协议和迭代器协议。生成器函数返回的结果是一个Generator对象,平时都是搭配yield来使用
function* func(){
console.log(1);
yield 'A';
console.log(2);
yield 'B';
console.log(3);
yield 'C';
}
let gt = func();//输出Generator { } ,创建一个生成器对象,但是方法中的代码还没有执行,基于gt.next()执行函数
console.log(gt.next()); //=>{value: 'A',done:false}在执行的时候遇到一次yield就会暂停一次,返回的对象中value存储的是yield的结果,done存储是否已经把代码都执行完
console.log(gt.next()); //=>{value: 'B',done:false}
console.log(gt.next()); //=>{value: 'C',done:false}
console.log(gt.next()); //=>{value: undefined,done:true}
方法
- Generator.prototype.next() 返回一个由 yield表达式生成的值。
- Generator.prototype.return() 返回给定的值并结束生成器。
- Generator.prototype.throw() 向生成器抛出一个错误。

浙公网安备 33010602011771号