说起generator函数,先要了解它和普通函数的区别!大家都知道普通函数是不可阻断和挂起的,generator函数是可以阻断的,很多文档都喜欢用等待,但是我更喜欢使用阻断! generator函数语法不难,*和yield,它生成一个迭代器,如果不清楚迭代器概念的,请自行百度。迭代器会对外暴露一个next方法,用来获取generator函数的相关yield内容。下面我们来看个例子:
图中可以看出,我们调用test1生成了一个名为testGene的迭代器,迭代器对外暴露了一个next方法,我们调用next方法,迭代器依次返回包含字test1和test2的对象,心细的你还会发现,返回对象中还有一个done,done这个是用来表示迭代器对象是否变量结束,是否还能获得新值!如果done的值为false,说明还能通过调用next方法获得新值,如果done的值为true,说明已经无法通过next方法获得新值!
做个小总结ÿ