如果说 JavaScrip 是 ECMAScript 标准的一种具体实现、Iterator
遍历器是Iterator
的具体实现,那么Generator
函数可以说是Iterator
接口的具体实现方式。
执行Generator
函数会返回一个遍历器对象,每一次Generator
函数里面的yield都相当一次遍历器对象的next()
方法,并且可以通过next(value)
方法传入自定义的value
,来改变Generator
函数的行为。
Generator
函数可以通过配合Thunk 函数更轻松更优雅的实现异步编程和控制流管理。