Hello! 欢迎来到小浪资源网!



JavaScript 中的生成器函数是什么?以及它是如何运作的?


JavaScript 中的生成器函数是一种特殊类型的函数,可以在执行过程中暂停和恢复。它使用 function* 语法定义,并使用yield 关键字顺序生成值。

生成器函数的主要特征

  1. 函数* 定义:
function* generatorfunction(){   yield 1;   yield 2;   yield 3;   yield 4;  } 

2.返回一个迭代器

  • 当调用生成器函数时,它不会立即执行。 相反,它返回一个迭代器对象
  • 迭代器有一个 next() 方法,用于控制 执行。
    1. 产量关键字:
  • yield 关键字用于生成一个值并暂停生成器。
  • 当再次调用 next() 时,生成器从 暂停的地方。

生成器函数示例:

function* generatorfunction(){    console.log("start");    yield 1;    console.log("resume");    yield 2;     console.log("end");  } const gen = generatorfuntion(); console.log(gen.next()); console.log(gen.next()); console.log(gen.next()); 

输出

start  {value: 1, done: false} Resume {value: 2, done: false} End {Value: undefined, done: true} 

它是如何运作的

  1. next() 上的执行:
    • 当第一次调用next()时,生成器启动 执行并运行直到第一个yield。
    • 它返回对象{value,done},其中:
      • value:yield产生的价值。
      • done:一个布尔值,指示生成器是否已完成
  2. 暂停和恢复。
    • 函数遇到yield时暂停执行。
    • 当再次调用 next() 时,它会从暂停处恢复。
  3. 完成:
    • 当生成器函数完成时,done 属性变为 是的。

相关阅读