JS详解-Generator核心语法

Generator介绍:是ES6提供的一种异步解决方案

Generator核心语法:

        Generator对象是由生成器函数返回并且符合可迭代协议和迭代器协议(生成器函数在执行时能暂停,后面又能从暂停处继续执行)。

        Iterator 对象是一个符合迭代器协议的对象,其提供了 next() 方法用以返回迭代器结果对象。所有内置迭代器都继承自 Iterator 类。Iterator 类提供了 @@iterator 方法,该方法返回迭代器对象本身,使迭代器也可迭代。它还提供了一些使用迭代器的辅助方法。

        注意:使用.next方法后有返回Props对象{value,done}其中value代表执行yield 后的值,done代表是否执行完毕,false为未完成,true完成

        

        // 1.定义生成器函数
        // 函数名后面加*表示生成器函数
        function* ianGenerator(){
            console.log('start')
            // 使用yield关键字暂停执行
            const res = yield 'hello'
            console.log('res:',res)
            console.log('end')
            yield 'ian'
            yield 'hello'
            yield 'world'
        }
        // 2.创建生成器对象
        const ian  = ianGenerator()
        // 3.调用生成器对象的next方法
        const res1 = ian.next()
        console.log(res1)
        const res2 = ian.next('world')
        console.log(res2)
        const res3 = ian.next()
        console.log(res3)
        const res4 = ian.next()
        console.log(res4)
        const res5 = ian.next()
        console.log(res5)
        // 4、使用for of循环遍历生成器对象
        for(const iterator of ian){
            console.log(iterator)
        }

Generator管理异步:

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值