GeneratorFunction
或function*
表达式定义生成器函数。GeneratorFunction
并不是一个全局对象,可以通过一下代码获取GeneratorFunction
定义生成器函数语法:new GeneratorFunction ([arg1[, arg2[, ...argN]],] functionBody)
function*
表达式定义生成器函数next()
方法被首次(后续)调用时,其内的语句会执行到第一个(后续)出现yield
的的位置为止,yield
后紧跟迭代器要返回的值。如果是yield*
表达式,则表示将执行权移交给另一个生成器函数(当前生成器暂停执行)。return
时,会导致生成器立即变为完成状态,即调用next()
方法返回的对象的done
属性的值为true
。如果return
后面跟了一个值,那么这个值会作为当前调用next()
方法返回的对象的属性value
的值。