Generator

34 阅读1分钟

Generator

1. 是什么?

  • 生成器函数,返回的是迭代器对象。
  • 可通过调用迭代器对象iter.next()方法继续函数的执行。通过yield关键字暂停函数的执行

2. 语法

  • 使用function*来定义生成器函数,搭配yield关键字使用

3. 有什么用?

  1. 实现异步编程,因为可以很好的控制异步操作的执行顺序
function* gen() {
  const data = yield fetch('https://jsonplaceholder.typicode.com/todos/1');
  console.log(data.title);
}

const iterator = gen();
const result = iterator.next();
result.value.then(data => iterator.next(data.json()));
  1. 作为迭代器,
function* gun(start, end) {
    for(let i = start; i < end; i++) {
        yield i;
    }
}
gun = new gun()
for(let i of gun) {
    console.log(i);
}