ES6 的 Generator 函数
Generator 函数是为解决异步编程问题而提出发方案。
和普通函数不同,执行 Generator 函数返回的并不是函数运行结果;而是返回一个遍历器对象(Iterator)。下一步必须调用 next()
方法,使得指针移向下一个状态(也就是下一个yield
表达式「或return
语句」)
next()
的执行方式如下
(1)遇到yield
表达式,就暂停执行后面的操作,并将紧跟在yield
后面的那个表达式的值,作为返回的对象的value属性值。
(2)下一次调用next
方法时,再继续往下执行,直到遇到下一个yield
表达式。
(3)如果没有再遇到新的yield
表达式,就一直运行到函数结束,直到return
语句为止,并将return
语句后面的表达式的值,作为返回的对象的value属性值。
(4)如果该函数没有return
语句,则返回的对象的value属性值为undefined。
Comments