生成器对象(Generator )是由一个 generator function
返回的,它同时符合可迭代协议和迭代器协议。
语法
function* gen() {
yield 1;
yield 2;
yield 3;
}
var g = gen(); // "Generator { }"
方法
Generator.prototype.next():返回yield表达式的值。(详见)
Generator.prototype.return():return() 方法返回给定的值并结束生成器。(详见)
Generator.prototype.throw():向生成器抛出一个错误。(详见)
举例:一个无限迭代器
function* idMaker() {
let index = 0;
while (true) {
yield index++;
}
}
let gen = idMaker();
console.log(gen.next().value);
console.log(gen.next().value);
console.log(gen.next().value);
console.log(gen.next().value);
// 0
// 1
// 2
// 3