generator函数

概念:封装各种状态,提供异步编程的解决方案,通常一个函数里面只能return返回一个,但通过yield可以返回多个值

特征

function*  函数名(){

yield  表达式

}

1.*星号位置建议紧跟function关键字

2.函数内部使用yield表达式

一:语法

 function* hello(){
            yield "hello";
            yield "world";
            return "hh"
        }
        const hw=hello();
        console.log(hw.next()) //{value:"hello",done:false}
        console.log(hw.next()) //{value:"world",done:false}
        console.log(hw.next()) //{value:"hh",done:true}
        console.log(hw.next())//{value:undefined,done:true}

结果:调用函数后,函数不会执行(无论是否使用了yield表达式),返回结果也不是函数运行结果,返回值为迭代器对象

使用.next()方法输出结果 {value:“yield表达式后的值”,done:true或false}

1.遇到yield表达式暂停执行后面代码,并将紧跟着该yield表达式的值作为返回对象value的属性值

2.遇到return语句停止,并将return语句后面的表达式的值,作为返回对象value的属性值,done的属性值为true

3.若执行到最后一句无return,则输出{value:undefined,done:true}

二:yield表达式

1.yield表达式是暂停标志,只能存在于generator中

语法:yield:表达式

当执行时表达式会作为返回对象的属性value的值


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值