javascript生成器函数的特点

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
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容