Generator

异步编程
有一种叫做”协程“,意为多个线程相互协作完成异步任务
协程运行流程
一,协程A开始执行
二,A执行到一半,进入暂停,执行权交由协程B;
三,(一段时间后)协程B交还执行权
四,协程A恢复执行

function async(){
//其他代码
var f=yield readFile(fileA)
//..其他代码
}

yield命令表示执行到此处,执行权交给其他协程,即yield命令是异步两阶段分界线

Generator是协程在es6的实现,最大特点是交出函数的执行权。

function gen(x){
var y=yield x+2;
return y
}
Var g=gen(1);
g.next()//{value:3,done:false}
g.next()//{value:underfined,done:true}

调用Generator函数会返回一个内部指针g,调用g的next方法会移动内部指针,指向第一个遇到的yeild语句,上例执行到x+2为止
即next方法作用是分阶段执行Generator函数,每次调用next方法会返回一个对象,表示当前阶段的信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值