定义:
它是一个在执行时能中途暂时退出,后面重新调用又能重新进入继续执行的一种函数。
并且在函数内定义的变量的所有状态不受中途退出的影响。
声明方式:
function* 函数名([参数1[, 参数2[, ... 参数n]]]) { JS语句 } //*仅是生成器函数的标识看作
例: function *fn(,y){ 执行函数 }
生成器函数的调用:
1) 调用生成器对象时会返回一个生成器的迭代器(interable)
2) 该迭代器中有一个next()方法,它返回一个包含value和done的对象//value是返回值 done是执行情况 true 和false
3) 每次调用next()方法遇到yied表达式位置暂停执行//输出结果
4) value表示yied表达式的返回值,done表示该生成器最后一个值是否已经产生 true / false
5)如果给next()方法传递参数, 参数的值会代替yied表达式的返回值
6) 如果在生成器中调用return,生成器将提前完成