生成器 Generators
Posted 不了无明
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成器 Generators相关的知识,希望对你有一定的参考价值。
function* quips(name) { yield "你好 " + name + "!"; yield "希望你能喜欢这篇介绍ES6的译文"; if (name.startsWith("X")) { yield "你的名字 " + name + " 首字母是X,这很酷!"; } yield "我们下次再见!"; }
- 普通函数使用function声明,而生成器函数使用function*声明。
- 在生成器函数内部,有一种类似return的语法:关键字yield。二者的区别是,普通函数只可以return一次,而生成器函数可以yield多次(当然也可以只yield一次)。在生成器的执行过程中,遇到yield表达式立即暂停,后续可恢复执行状态。
> var iter = quips("jorendorff"); [object Generator] > iter.next() { value: "你好 jorendorff!", done: false } > iter.next() { value: "希望你能喜欢这篇介绍ES6的译文", done: false } > iter.next() { value: "我们下次再见!", done: false } > iter.next() { value: undefined, done: true }
以上是关于生成器 Generators的主要内容,如果未能解决你的问题,请参考以下文章
python解释 yield 和 Generators(生成器)