美文网首页
generator function

generator function

作者: 遇一顽石 | 来源:发表于2020-07-03 17:56 被阅读0次

    一、什么是生成器函数?

    生成器函数是ES6的新特性之一,它是一个在执行时能中途暂时退出,后面重新调用又能重新进入继续执行的一种函数。

    并且在函数内定义的变量的所有状态不受中途退出的影响。

    二、语法

    声明方式:

    function* 函数名([参数1[, 参数2[, … 参数n]]]) { JS语句 }

    调用说明:

    1) 调用生成器对象时会返回一个生成器的迭代器

    2) 该迭代器中有一个next()方法,它返回一个包含value和done的对象

    3) 每次调用next()方法遇到yied表达式位置暂停执行

    4) value表示yied表达式的返回值,done表示该生成器最后一个值是否已经产生

    5)如果给next()方法传递参数, 参数的值会代替yied表达式的返回值

    1. 如果在生成器中调用return,生成器将提前完成
    function* gen(){
        yield "hello";
        yield "world";
        return "ends"
    }
    
    
    let g1=gen()
    
    console.log(g1.next());    //  {value:'hello',done:false}
    
    console.log(g1.next())     //  {value:"world",done:false}
    
    console.log(g1.next())     //  {value:"ends",done:true}
    
    console.log(g1.next())     // {value:undefined,done:true}
    
    console.log(g1.next())     // {value:undefined,done:true}
    

    相关文章

      网友评论

          本文标题:generator function

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