yield生成器

在 JavaScript 中,yield 是一个关键字,用于生成器函数(Generator Function)中。生成器函数是一种特殊类型的函数,它可以在执行过程中暂停,并且可以多次从暂停的位置继续执行。

yield 关键字用于定义生成器函数中的一个暂停点,并返回一个生成器对象的值。每次调用生成器函数时,执行会从上次暂停的位置恢复,并执行到下一个 yield 关键字处,然后返回一个由 yield 关键字后面的表达式计算得到的值。

下面是一个简单的生成器函数的示例:

function* generatorFunction() {
  yield 1;
  yield 2;
  yield 3;
}

const generator = generatorFunction(); // 创建一个生成器对象

console.log(generator.next()); // 输出: { value: 1, done: false }
console.log(generator.next()); // 输出: { value: 2, done: false }
console.log(generator.next()); // 输出: { value: 3, done: false }
console.log(generator.next()); // 输出: { value: undefined, done: true }

在上面的示例中,我们定义了一个生成器函数 generatorFunction,它使用 yield 关键字定义了三个暂停点。每次调用生成器对象的 next() 方法时,执行会从上次暂停的位置继续,并返回一个包含 valuedone 属性的对象。value 属性表示 yield 关键字后面的表达式的值,done 属性表示生成器函数是否已经执行完毕。

使用 yield 关键字可以控制生成器函数的执行流程,使得函数的执行可以在不同的时间点暂停和恢复。这在某些场景下非常有用,例如处理大量数据、异步操作的串行执行等。

posted on 2024-02-28 18:02  龍瀧尨呀  阅读(8)  评论(0编辑  收藏  举报

导航