generator是什么?
是一个迭代器生成函数,返回值是一个迭代器,可用于异步计算,generator函数是ES6一种特殊的函数,与其他普通函数不一样!
使用场景:
function* str(){
yield "a"
yield "b"
return "c"
}
var s = str()
s.next() {value:"a",done:false}
s.next() {value:"b",done:false}
s.next() {value:"c",done:true}
特点:
1、function后加上 * 号,配合yield使用
2、generator返回lterator遍历器对象,通过其next方法,将generator函数体内的代码以yield为界分步执行
3、执行generator函数时,函数并不会执行,调用lterator遍历器对象的next方法,程序才会执行
3、value取的yield或者return后面的值,否则就是undefined,done的值如果碰到return或者执行完成则返回true,否则返回false。