ECMAScript的生成器函数怎样写
ECMAScript 6(ES6)引入了生成器函数,它是一种特殊的函数,可以在执行过程中暂停和恢复。生成器函数使用 function* 关键字定义,并且可以使用 yield 关键字来暂停函数的执行。
下面是一个简单的生成器函数示例:
function* generatorFunction() {
console.log('Start');
yield 1;
console.log('Continue');
yield 2;
console.log('End');
}
const generator = generatorFunction();
console.log(generator.next()); // 输出:{ value: 1, done: false }
console.log(generator.next()); // 输出:{ value: 2, done: false }
console.log(generator.next()); // 输出:{ value: undefined, done: true }
在这个示例中,我们定义了一个名为 generatorFunction 的生成器函数。在函数内部,我们使用 yield 关键字来暂停函数的执行,并返回一个值。当我们调用 generator.next() 方法时,函数会从上次暂停的地方继续执行,直到遇到下一个 yield 关键字或者函数结束。
生成器函数的主要用途是创建迭代器。你可以通过调用生成器对象的 next() 方法来遍历生成器函数产生的值。当 done 属性为 true 时,表示生成器函数已经执行完毕。