Iterator Sequencing S4
中文标题:迭代器序列化
提案概览
- 阶段: Stage 4
- 状态: 已完成
- ECMAScript 版本: ES2026
- 同步时间: 2026年8月26日
- English original · 官方仓库
提案速览
该提案添加了一个静态的 Iterator.concat 方法,用于将多个可迭代对象按顺序组合成一个迭代器。它解决了手动使用生成器或辅助库进行拼接在人体工程学上的不足。
Note
以下 README 来自上游仓库,其中的阶段或状态标注可能滞后;当前信息以提案概览为准。
迭代器序列化
一个 TC39 提案,通过按顺序连接现有迭代器来创建新迭代器。
阶段: 4
规范: https://tc39.es/proposal-iterator-sequencing/
向委员会做的演示
动机
通常你有两个或更多迭代器,你希望按顺序消费它们的值,就像它们是单个迭代器一样。迭代器库(以及其他语言的标准库)通常有一个名为 concat 或 chain 的函数来实现这一点。在今天的 JavaScript 中,你可以用生成器(generators)来实现:
能够在迭代器之间插入立即值也是有用的,就像使用生成器方法时用 yield 那样。
我们应该探索如何使这更符合人体工程学且更函数式。
选定方案
对于(罕见的)无限迭代器的迭代器,使用 Iterator.prototype.flatMap 并辅助以恒等函数。