javascipt yield
时间: 2023-07-05 11:23:35 浏览: 174
`yield` 是 JavaScript 中的一个关键字,用于定义一个生成器函数(Generator Function)。生成器函数可以暂停执行并返回一个中间结果,然后可以在稍后的时间内继续执行,直到返回最终结果或者抛出异常。
在生成器函数中,`yield` 用于暂停执行并返回一个中间结果,类似于 `return`,但是不会终止函数的执行。当生成器函数被调用时,它返回一个迭代器对象,可以通过调用 `next()` 方法来获取生成器函数返回的下一个值。
以下是一个简单的示例:
```
function* generator() {
yield 1;
yield 2;
yield 3;
}
const iterator = generator();
console.log(iterator.next()); // { value: 1, done: false }
console.log(iterator.next()); // { value: 2, done: false }
console.log(iterator.next()); // { value: 3, done: false }
console.log(iterator.next()); // { value: undefined, done: true }
```
在上面的示例中,`generator()` 函数定义了一个生成器函数,它通过 `yield` 关键字返回了三个值。当生成器函数被调用时,它返回了一个迭代器对象 `iterator`,然后可以通过调用 `next()` 方法来获取生成器函数返回的下一个值。每次调用 `next()` 方法时,生成器函数都会从上次暂停执行的位置继续执行,直到遇到下一个 `yield` 关键字或者函数结束。最后,当生成器函数执行完毕时,`next()` 方法返回的对象中的 `done` 属性值为 `true`。
阅读全文