
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


















































暂无评论内容