什么是 Generator 函数?

· 约 4 分钟读完 · 第 56 / 142 章

推荐答案

Generator 函数是 ES6 引入的一种特殊函数,它可以通过 function* 语法定义,并且可以使用 yield 关键字来暂停和恢复函数的执行。Generator 函数返回一个 Generator 对象,该对象遵循迭代器协议,可以通过 next() 方法逐步执行函数体中的代码。

本题详细解读

1. Generator 函数的定义

Generator 函数使用 function* 语法定义,函数体内可以使用 yield 关键字来暂停函数的执行,并返回一个值。每次调用 next() 方法时,函数会从上次暂停的地方继续执行,直到遇到下一个 yield 或函数结束。

2. Generator 函数的执行过程

Generator 函数不会立即执行,而是返回一个 Generator 对象。调用 next() 方法时,函数会从上次暂停的地方继续执行,直到遇到 yield 或 return 语句。yield 会暂停函数执行并返回一个值,而 return 会结束函数执行并返回一个值。

3. Generator 函数的应用场景

Generator 函数常用于异步编程、惰性求值、无限序列等场景。通过 yield 和 next() 的配合,可以实现复杂的控制流。

4. Generator 函数与迭代器的关系

Generator 函数返回的 Generator 对象实现了迭代器协议,因此可以使用 for...of 循环来遍历 Generator 函数生成的值。

5. Generator 函数的错误处理

Generator 函数可以通过 throw() 方法在函数体内抛出错误,并通过 try...catch 捕获错误。