Generator解决回调地狱以及用法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、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()

猜你喜欢

转载自blog.csdn.net/VXYupq/article/details/129949621