generator
时间: 2023-09-17 17:06:49 浏览: 172
Generator是ES6标准引入的一种新的数据类型,是一个迭代生成器,它借鉴了Python中的generator概念和语法。
Generator函数是一种特殊的函数语法,通过在函数名前加上"*"来定义。这种函数可以被称为生成器函数,它可以返回一个迭代器。生成器函数内部使用yield关键字来定义需要生成的值,每次调用生成器函数的next()方法时,会返回yield语句后的值,同时暂停函数的执行,直到下一次调用next()方法再次恢复执行。当生成器函数执行完所有的yield语句后,再次调用next()方法将返回undefined,并且done属性为true,表示生成器函数执行完毕。
在使用生成器函数时,需要通过调用next()方法来启动生成器,并逐步获取生成器函数中定义的值。每次调用next()方法,生成器函数会从上一次执行的yield语句后继续执行,直到遇到下一个yield语句或函数结束。需要注意的是,对于普通的生成器,第一次调用next()方法相当于启动生成器,从生成器函数的第一行代码开始执行,而每次调用next()方法,都会继续从上一次yield语句后的代码开始执行,直到下一个yield语句或函数结束。Generator函数可以通过调用return方法来提前终止函数的执行,并指定返回的值。总的来说,Generator函数是一种分段执行的函数,yield表达式用于暂停函数的执行,而next()方法用于恢复执行。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [generator详解](https://blog.csdn.net/LeoL1u/article/details/107929647)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [es6中的generator函数详解](https://blog.csdn.net/weixin_43638968/article/details/105475881)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文