es6 生成器迭代器
时间: 2023-08-30 12:05:01 浏览: 126
ES6引入了生成器和迭代器的概念,它们为JavaScript提供了更强大的迭代控制和异步编程的能力。
生成器是一种特殊类型的函数,使用`function*`关键字定义。生成器函数可以通过`yield`关键字来暂停和恢复执行,而不是一次性执行完毕。每次调用生成器函数时,它会返回一个迭代器对象。
迭代器是一个具有`next()`方法的对象,用于按需生成序列中的值。`next()`方法返回一个包含两个属性的对象:`value`表示当前迭代的值,`done`表示迭代是否已完成。
以下是一个使用生成器和迭代器的示例:
```javascript
function* myGenerator() {
yield 'Hello';
yield 'World';
}
const iterator = myGenerator();
console.log(iterator.next()); // 输出:{ value: 'Hello', done: false }
console.log(iterator.next()); // 输出:{ value: 'World', done: false }
console.log(iterator.next()); // 输出:{ value: undefined, done: true }
```
在上面的示例中,`myGenerator`是一个生成器函数,它返回一个迭代器对象。通过调用`next()`方法,我们可以逐步获取生成器函数中的值,直到生成器函数执行完毕并返回`done`为`true`。
生成器和迭代器在处理异步操作时也非常有用,可以简化回调地狱(callback hell)问题,并使代码更易读和维护。
阅读全文