赞
踩
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)
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。