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的主要内容,如果未能解决你的问题,请参考以下文章

generator,yield个人理解

python generator next send

详谈Generator

yield用法

python generator: next , sent(msg)区别

ES6中generator(生成器)函数的应用