ES6学习(九)—Generator 函数的语法
Generator
函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。Generator
函数是一个状态机,内部封装了不同状态的数据用来生成遍历器对象,可暂停函数(惰性请求),yield
可暂停,next
方法可以启动,每次返回的是yield
后的表达式结果
Generator函数的特点:
function
函数与函数名之间有一个星号- 内部用
yield
表达式来定义不同的状态 generator
函数返回的是指针对象 而不会执行函数内部逻辑- 调用
next
方法函数逻辑开始执行,而到yield
表达式停止返回{value:yield后的表达式结果为undefined,done:false/true}
再次调用next
方法从上一次停止时的yield
处开始,直到最 yield
语句的返回结果通常是undefined
,当调用next
方法时传参内容会作为启动时yield
语句的返回值