1、生成函数调用,没有执行函数体中的函数体,而是返回一个生成器。
因为生成器函数内部函数的执行,且由返回的生成器控制。
2、生成器函数会从上次yield语句的位置运行到下一个yield语句的位置。
无论何时调用返回的生成器的next方法。
实例
function*createGenerator(){ console.log('functionstart...') letres=yield1 //第一次迭代<next()调用>卡在yield语句,未完成赋值操作 //第二次迭代新传的参数值会赋给res变量(不传则为undefined) console.log('logger-1',res) res=yield2 console.log('logger-2',res) res=yield3 console.log('logger-3',res) return{ desc:'functionend...' } } constgenerator=createGenerator()//得到生成器 generator.next(111) /* print:‘functionstart...’ 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:'functionend...' }, done:true } */
以上就是javascript生成器函数的特点,希望对大家有所帮助。更多Javascript学习指路:Javascript
原文来自:https://www.py.cn© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容