ES6中的Generator函数

1、generator函数的声明

 function* fn() {
        console.log('我是generator函数1');
        yield '我是2'
        console.log('我是generator函数2');
        yield '我是3'
        console.log('我是generator函数3');
    }

2、函数调用

返回一个iterator对象,对象里面有个next()方法,返回一个对象,里面有value done
value代表yield后面的值

var gen = fn()
    // console.log(gen);
    console.log(gen.next());
    console.log(gen.next());
    console.log(gen.next());

3、return:后面的不执行,代表函数执行完 yield:后面的可以执行,通过调用next()继续执行

4、next( )方法还可以接受一个参数,它的参数会作为上一个yield的返回值

function* genEr() {
        console.log('1');

        let res = yield '我是第一个'

        console.log(res);

        let res_1 = yield res

        yield res_1
    }
    let genEr_1 = genEr()
    console.log(genEr_1.next());
    console.log(genEr_1.next('参数'));  // {value:'参数',done:}
    console.log(genEr_1.next('参数1'));  // {value:'参数1',done:}

5、想从其他函数调用另一个函数 用 yield*

function* fn_1() {
        console.log('fn_1');
    }
    function* fn_2() {
        console.log('fn_2');
    }
    function* fn_3() {
        yield* fn_1()
        yield* fn_2()
        console.log('fn_3');
    }
    var fn_4 = fn_3()
    fn_4.next()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值