javascript中generator快速小结

1 基本例子
   

function* generatorFunc(){
	console.log("任务一");
	yield 1;
	console.log("任务二");
	yield* generatorSubFunc();
	console.log("任务三");
	return 3;
}
let g = generatorFunc();
let t1 = g.next();//任务一
let t2 = g.next();//任务二 子任务一 子任务二
let t3 = g.next();//任务三
let t4 = g.next();
console.log(t1);//{ value: 1, done: false }
console.log(t2);//{ value: 2, done: false }
console.log(t3);//{ value: 3, done: true }
console.log(t4);//{ value: undefined, done: true }

   其实简单理解,就是每次调用next得时候,才去执行得,其中yield是中断,当t2调用得时候,会继续执行,而且yield后可以跟返回值得,就是value,如果执行完了,会有done表示是否执行完毕。
 generator接受参数:
  

function* cal(){
	console.log("可以开始计算");
	let a = yield;
	console.log("接收参数a",a);
	let b = yield;
	console.log("接收参数b",b);
	let res = a+b;
	yield res;
	res = res*res;
	let d = yield res;
	console.log("接收参数d",d);
	res = res - d;
	return res;
}
let c = cal();
c.next();
c.next(5);
console.log(c.next(3));//{ value: 8, done: false }
console.log(c.next());//{ value: 64, done: false }
console.log(c.next(10));//{ value: 54, done: true }


  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值