Generator 简介
💡
原文中文,约5000字,阅读约需12分钟。
📝
内容提要
Generator 是 JavaScript 的内置对象,属于 Iterator 的子类。生成器函数通过 `function*` 定义,使用 `yield` 表达式,支持异步编程。符合可迭代和迭代器协议的对象需实现 `next()` 方法。Generator 可解决回调地狱问题,并可通过 Thunk 函数实现自动执行。
🎯
关键要点
- Generator 是 JavaScript 的内置对象,属于 Iterator 的子类。
- 生成器函数通过 function* 定义,使用 yield 表达式,支持异步编程。
- 可迭代协议要求对象实现 [Symbol.iterator]() 方法,返回符合迭代器协议的对象。
- 迭代器协议定义了产生一系列值的标准方式,必须实现 next() 方法。
- Generator 函数中的 yield 表达式使函数执行暂停,支持异步编程。
- yield 关键字只能在 Generator 函数中使用,不能在其他方法中使用。
- 生成器函数可以解决回调地狱问题,简化异步操作的代码结构。
- Thunk 函数是实现自动执行 Generator 函数的方式,支持传名调用。
- yield* 机制可以将执行权交给另一个生成器,支持生成器的复用。
- Generator 对象还包含 return() 和 throw() 方法,用于控制生成器的执行。
🏷️
标签
➡️