return会立即终止生成器函数的执行,返回指定值并设置done为true,后续next调用不再产生新值。

在 JavaScript 中,return 可以直接结束一个生成器函数的执行,并可选地返回一个值。
生成器中的 return 表现
生成器函数使用 function* 定义,通过 yield 暂停执行。当你在生成器内部使用 return 时,会立即终止生成过程:
后续调用 next() 不再产生新的有效值本次 return 调用会将传入的值作为返回结果的 value同时设置返回对象的 done: true
示例代码:
function* gen() { yield 1; yield 2; return 'end'; // 提前结束 yield 3; // 不会执行}const g = gen();console.log(g.next()); // { value: 1, done: false }console.log(g.next()); // { value: 2, done: false }console.log(g.next()); // { value: 'end', done: true }console.log(g.next()); // { value: undefined, done: true }
与 throw 配合提前退出
除了 return,你也可以用 throw 强制中断生成器:
uBrand Logo生成器
uBrand Logo生成器是一款强大的AI智能LOGO设计工具。
57 查看详情
抛出异常后,生成器进入终止状态未捕获的异常会导致迭代提前结束适合用于错误处理或条件中断
return 和 yield* 的关系
当使用 yield* 委托到另一个生成器时,被委托生成器的 return 值可以被捕获:
function* inner() { yield 'a'; return 'inner result';}function outer() {const result = yield inner();console.log(result); // 输出: inner resultyield 'done';}
基本上就这些。return 在生成器中不只是返回值,更是控制执行流程的关键手段。它让开发者能清晰定义何时结束迭代,比手动抛异常更自然。
以上就是js中return如何结束生成器的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/295208.html
微信扫一扫
支付宝扫一扫