什么是JavaScript的生成器函数_yield关键字如何控制执行流程?

admin 百科 6
JavaScript生成器函数用function*声明,通过yield暂停执行并返回迭代器对象;每次调用next()从暂停处继续,yield可传值与接收外部输入,适用于惰性计算、自定义迭代及异步编程基础。

什么是JavaScript的生成器函数_yield关键字如何控制执行流程?-第1张图片-佛山资讯网

JavaScript的生成器函数是一种可以暂停和恢复执行的特殊函数,yield 是它的核心控制关键字——它让函数不再“一气呵成”,而是像按了暂停键一样,每次调用 next() 才继续往下走一步。

生成器函数怎么写?

function* 声明,内部用 yield 标记暂停点:

function* count() {
  console.log('start');
  yield 1;
  console.log('after first yield');
  yield 2;
  console.log('end');
  return 'done';
}

登录后复制

调用它不会立即执行,而是返回一个**迭代器对象**:

const it = count(); // 没有打印任何内容

登录后复制

yield 怎么控制流程?

每次调用 it.next(),函数从上次暂停处(或开头)运行,直到遇到下一个 yieldreturn

立即学习“Java免费学习笔记(深入)”;

  • it.next() → 输出 'start',返回 { value: 1, done: false }
  • it.next() → 输出 'after first yield',返回 { value: 2, done: false }
  • it.next() → 输出 'end',返回 { value: 'done', done: true }

yield 表达式的值就是 next() 返回的 value;函数结束时 done 变为 true

标签: javascript java js go ai

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~