本文最后更新于164 天前,其中的信息可能已经过时,如有错误请发送邮件到1986413837@qq.com
简单来说,同步生成器是“我问你要,你立刻给”,而异步生成器是“我问你要,你让我等会儿,有货了再叫我”


| 维度 | 同步生成器 (Generator) | 异步生成器 (Async Generator) |
| 声明方式 | function* | async function* |
| 内部操作 | 只能处理同步逻辑 | 可以使用 await 处理异步逻辑 |
| 返回内容 | 直接返回数据对象 {value, done} | 返回一个 Promise,该 Promise 最终解析为 {value, done} |
| 遍历方式 | for (const x of gen) | for await (const x of gen) |
| 场景 | 拆解一个大型计算、生成斐波那契数列 | 处理 AI 打字流、读取超大文件块、订阅消息队列 |