ES6 Generator函数

Generator函数是es6提供的解决异步编程的方案之一;

Generator函数是一个状态机,内部封装了不同状态的数据;

 

// generator定义 function后面跟个*号

function* myGenerator(){

    console.log('业务逻辑A')

    yield 'hello'

    console.log('业务逻辑B')

    yield 'world'

}



myGenerator()

我们直接调用的话,不会有任何输出;因为里面是个状态机;必须调用next();

mg.next();

mg.next();

输出:

 

 

 

没执行一次next() 指针想下偏移一次,根据yield来作用;

console.log(mg.next())

console.log(mg.next())

console.log(mg.next())

我们输出下next()返回结果;

 

 

我们看到value是对应的yield值,然后done的话,只有后面还有yield,就是false;遍历完了,就是true;

yield返回值,默认是undefined

 

 

 

 假如需要值的话,我们next()方法里传值即可;

 

 

 

posted @ 2020-05-26 18:00  张顺海  阅读(206)  评论(0编辑  收藏  举报