1、generator
(1)Generator函数是ES6提供的一种异步编程的解决方案;
(2)Generator函数是一个状态机,封装了多个内部状态,执行Generator函数会返回一个遍历器对象,也就是说,Generator函数除了是状态机,还是一个遍历器对象生成函数。返回的遍历器对象,可以依次遍历Generator函数内部的每一个状态。
2.Generator函数的特征:
(1)function 关键字与函数名之间有一个*号;
(2)Generator函数内部使用yield表达式,定义内部的不同状态;
(3)Generator函数调用不像普通函数那样直接调用,要想函数执行必须调用遍历器对象的next方法,也就是说想要执行函数就需要使用next方法,调用一次next方法执行一次yield表达式,直到执行完yield表达式。
代码实现:
3.Generator函数的使用方法:
function* gener(){
yield "开始"
yield "停止"
yield "结束"
}
let a=gener()
console.log(a.next()) //{ value: '开始', done: false }
console.log(a.next()) //{ value: '停止', done: false }
console.log(a.next()) // { value: '结束', done: false }
console.log(a.next()) // { value: undefined, done: true }