JavaScript生成器是用function*定义的可暂停函数,返回迭代器对象,通过next()方法控制执行节奏,yield实现暂停与恢复及双向通信,适用于异步流程、惰性求值和状态机。

JavaScript 生成器(Generator)是一种特殊的函数,用 function* 定义,配合 yield 关键字实现**函数执行的暂停与恢复**,从而让开发者手动控制流程节奏,而不是一次性运行到底。
function* 创建可暂停的函数生成器函数不会立即执行,而是返回一个**迭代器对象**(Iterator)。这个对象拥有 next() 方法,每次调用都会让函数从上次暂停的位置继续执行,直到遇到下一个 yield 或函数结束。
例如:
function* count() {yield 是暂停点,不是返回值语句yield 暂停函数执行,并把右侧表达式的值作为 next() 调用的 value;但它不退出函数,后续 next() 可以恢复执行。
立即学习“Java免费学习笔记(深入)”;
next() 启动函数,执行到第一个 yield 就停住next() 从暂停处继续,直到下一个 yield 或 return
yield 表达式本身有返回值:可以接收上一次 next(value) 传入的参数(即“外部传进来的值”)next(value) 实现双向通信yield 左侧可以赋值,形成“产出 + 接收”的协作模式:
注意:首次 next() 传参无效(因无前一个 yield 等待接收),后续每次 next(x) 的 x 会成为上一个 yield 表达式的值。
它天然适合封装分步逻辑:
async/await 的早期替代方案(如 co 库)yield 对应一个状态,next() 触发状态迁移以上就是什么是javascript生成器_function*和yield如何控制执行流程的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号