• 技术文章 >Web开发 >JavaScript

    javascript生成器函数的特点

    小妮浅浅小妮浅浅2021-08-31 15:14:52原创135

    1、生成函数调用,没有执行函数体中的函数体,而是返回一个生成器。

    因为生成器函数内部函数的执行,且由返回的生成器控制。

    2、生成器函数会从上次yield语句的位置运行到下一个yield语句的位置。

    无论何时调用返回的生成器的next方法。

    实例

    function* createGenerator() {
        console.log('function start...')
        let res = yield 1
        // 第一次迭代 <next() 调用> 卡在 yield 语句,未完成赋值操作
        // 第二次迭代新传的参数值会赋给 res 变量(不传则为 undefined)
        console.log('logger - 1', res)
        res = yield 2
        console.log('logger - 2', res)
        res = yield 3
        console.log('logger - 3', res)
        return {
            desc: 'function end...'
        }
    }
    const generator = createGenerator() // 得到生成器
    generator.next(111)
    /*
    print: ‘function start...’
    returns: { value: 1, done: false }
    */
     
    generator.next(222)
    /*
    print: ‘logger - 1’ 222
    returns: { value: 2, done: false }
    */
     
    generator.next()
    /*
    print: ‘logger - 2’ undefined
    returns: { value: 3, done: false }
    */
     
    generator.next(444)
    /*
    print: ‘logger - 3’ 444
    returns: {
        value: {
            desc: 'function end...'
        },
        done: true
    }
    */

    以上就是javascript生成器函数的特点,希望对大家有所帮助。更多Javascript学习指路:Javascript

    专题推荐:javascript 生成器函数
    品易云
    上一篇:javascript中generator函数的介绍 下一篇:javascript中yield关键字的使用

    相关文章推荐

    • javascript中promise有什么局限• javascript中promise的特殊场景应用• javascript中async/await是什么• javascript同步回调如何理解• javascript异步回调是什么• javascript数组如何判断是否存在指定值• javascript如何展开多维数组• javascript上下文中栈的理解• javascript上下文的创建阶段• javascript中迭代如何理解• javascript迭代器模式是什么• JavaScript中时间戳运算的方法

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网