ES6迭代器next()方法返回含value和done属性的对象:value为当前迭代值(任意类型),done为布尔值标识是否结束(false表示继续,true表示终止且后续调用应返回{value: undefined, done: true})。

ES6 迭代器对象的 next() 方法返回一个固定结构的对象,必须包含两个属性:value 和 done。
value 属性:当前迭代项的值
表示本次迭代所产出的数据。可以是任意类型(数字、字符串、对象、undefined 等)。
当迭代尚未结束时,value 是有效值;
当迭代已结束(done: true),规范不要求 value 有特定值,实践中通常为 undefined,但也可设为其他值(如终止提示)。
done 属性:迭代状态标识
是一个布尔值,用于指示迭代是否完成:
• done: false 表示还有数据可取,迭代继续;
• done: true 表示已到达末尾,后续调用应不再产生新数据。
一旦 done 变为 true,后续所有 next() 调用都应返回 { value: undefined, done: true }(或保持该语义)。
用于 inference.sh 的 JavaScript/TypeScript SDK,可运行 AI 应用、构建代理、集成 150+ 模型。包名:@inferencesh/sdk(npm install),完整 TypeScript 支持。
返回对象的完整结构示例
合法返回值总是形如:
-
{ value: 42, done: false }—— 正常返回第 n 个值 -
{ value: "hello", done: false }—— 返回字符串 -
{ value: undefined, done: true }—— 迭代结束(最常见形式) -
{ value: null, done: true }—— 合法,value可为null
注意点
• 不要求 value 和 done 按特定顺序出现在对象中,但必须同时存在;
• done 为 true 时,value 的含义由实现决定,for…of 等语言结构只关心 done 状态;
• 该结构是迭代器协议的核心约定,任何满足此返回格式的对象,都可被 for…of、扩展运算符(...)、Array.from() 等消费。

















