提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、Generator的基本应用?
Generator函数
function后面加个*
可以让一个函数返回多次值
可以通过调用next() 来移动指针
二、使用
1.用法
generator 函数,是允许传带参数,也允许next传参数,第二次调用的next方法所传的参数
会作为第一个yield的返回值
遇到yield 就会暂停,并且把yield后面内容返回出去
可以用个调用next()来继续向下执行
代码如下(示例):
function* xx(){
console.log(1111)
yield "xxoo1" //遇到yield 就会暂停,并且把yield后面内容返回出去
//可以用个调用next()来继续向下执行
console.log(2222)
yield "xxoo2"
console.log(3333)
return 111
}
2.Generator函数解决回调地狱
代码如下(示例):
function one(){
setTimeout(() => {
console.log(1);
iterator.next()
}, 1000);
}
function two(){
setTimeout(() => {
console.log(2);
iterator.next()
}, 1000);
}
function three(){
setTimeout(() => {
console.log(3);
iterator.next()
}, 1000);
}
function * gen(){
yield one();
yield two();
yield three()
}
let iterator = gen()
iterator.next()