Generator函数是一种特殊的函数,可以用来控制函数的执行过程。在函数执行过程中,可以使用yield关键字暂停函数的执行,并在需要的时候继续执行。
Generator函数会返回一个迭代器对象,可以通过调用该对象的next()方法来逐个访问Generator函数中yield关键字返回的值。
使用Generator函数可以很容易地实现迭代器。以下是一个简单的例子:
function* myIterator() {
yield 1;
yield 2;
yield 3;
}
const iterator = myIterator();
console.log(iterator.next()); // {value: 1, done: false}
console.log(iterator.next()); // {value: 2, done: false}
console.log(iterator.next()); // {value: 3, done: false}
console.log(iterator.next()); // {value: undefined, done: true}
在上面的代码中,我们定义了一个Generator函数myIterator,它会返回一个迭代器对象。在函数中,我们使用yield关键字返回了三个值1、2、3。
接着,我们创建了一个迭代器对象iterator,并通过调用next()方法来访问函数中yield返回的值。在调用next()方法后,函数会从上一次暂停的地方开始继续执行,直到遇到下一个yield关键字或函数结束。
当函数执行结束时,迭代器对象的done属性会变为true,value属性会变为undefined。