Generator中的yield和next
Posted 江州益彤
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Generator中的yield和next相关的知识,希望对你有一定的参考价值。
yield语句本身没有返回值
var b = 9;
var a = function*() {
b = yield(10);
/*
*拆分成
*yield(10);
* b=yield(10);
* 因为yield语句本身没有返回值,所以,b为undefined
*/
return 11;
}
var f = a();
console.log(f.next().value, b, f.next().value, b);
拓展 next传入的参数,其实是把上一个yield语句的返回的值给覆盖了
var b = 9;
var a = function*() {
b = yield(10);
/*
*拆分成
*yield(10);
* b=yield(10);第二个next传入参数覆盖第一个yield,所以b=13
* 因为yield语句本身没有返回值所以,b为undefined
*/
return 11;
}
var f = a();
//next传入的参数,其实是把上一个yield语句的返回的值给覆盖了
console.log(f.next().value, b, f.next(13).value, b);
//10
//9
//11
//13
以上是关于Generator中的yield和next的主要内容,如果未能解决你的问题,请参考以下文章