20.ES6中Generator生成器

作者: 圆梦人生 | 来源:发表于2019-02-18 10:55 被阅读2次

    Generator是ES6的生成器
    1、Generator 函数是 ES6 提供的一种异步编程解决方案,在函数中可以暂停操作
    2、Generator定义的时候需要在function 和方法名直接有个*号
    3、函数体内部使用yield表达式,定义不同状态
    4、调用next方法返回不同结果

    定义generator函数, 号定义方式:
    1、function
    generatorFun() ...
    2、function * generatorFun() ...
    3、function *generatorFun() ...

    案例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Generator</title>
        <script>
            // Generator是ES6的生成器
            // 1、Generator 函数是 ES6 提供的一种异步编程解决方案,在函数中可以暂停操作
            // 2、Generator定义的时候需要在function 和方法名直接有个*号
            // 3、函数体内部使用yield表达式,定义不同状态
            // 4、调用next方法返回不同结果
            // 定义generator函数
            // *号定义方式:
            // function* generatorFun(){
            // function * generatorFun(){
            function *generatorFun(){
                console.log('start----');
                yield 'one';
                console.log('start 1----');
                yield 'two';
                console.log('start 2----');
                return 'over'
            }
            // 调用
            let g = generatorFun();
            // console.log(g);
            // let { value } = g.next();
            // console.log(value);
            // 调用 next方法
            // {value: "one", done: false}
            console.log(g.next());
            // {value: "two", done: false}
            console.log(g.next());
            // {value: "over", done: true}
            console.log(g.next());
            // {value: undefined, done: true}
            console.log(g.next());
        </script>
    </head>
    <body>
        
    </body>
    </html>
    
    

    相关文章

      网友评论

        本文标题:20.ES6中Generator生成器

        本文链接:https://www.haomeiwen.com/subject/bjzoeqtx.html