Generator 函数是 ES6 提供的一种异步编程解决方案。
调用 Generator 函数后,该函数并不执行,返回的也不是函数运行结果,而是一个指向内部状态的指针对象。必须调用遍历器对象的 .next()
方法,使得指针移向下一个状态。
function* abcGenerator() {
yield 'a';
yield 'b';
return 'c';
}
var abcFun = abcGenerator();
abcFun.next(); // {value: "a", done: false}
abcFun.next(); // {value: "b", done: false}
abcFun.next(); // {value: "c", done: true}
abcFun.next(); // {value: undefined, done: true}
每次调用遍历器对象的 .next()
方法,就会返回一个有 value 和 done 两个属性的对象。value 属性表示当前的内部状态的值,是 yield
表达式后面那个表达式的值;done 属性是一个布尔值,表示是否遍历结束。
网友评论