javascript 中的生成器函数是一种特殊类型的函数,可以在执行过程中暂停和恢复。它使用 function* 语法定义,并使用yield 关键字顺序生成值。
生成器函数的主要特征
用 函数* 定义:1
2
3
4
5
6
function* generatorfunction(){
yield 1;
yield 2;
yield 3;
yield 4;
}
2.返回一个迭代器
当调用生成器函数时,它不会立即执行。 相反,它返回一个迭代器对象。 迭代器有一个 next() 方法,用于控制 执行。 产量关键字: yield 关键字用于生成一个值并暂停生成器。 当再次调用 next() 时,生成器从 暂停的地方。生成器函数示例:
1
2
3
4
5
6
7
8
9
10
11
12
function* generatorfunction(){
console.log("start");
yield 1;
console.log("resume");
yield 2;
console.log("end");
}
const gen = generatorfuntion();
console.log(gen.next());
console.log(gen.next());
console.log(gen.next());
输出
1
2
3
4
5
6
start
{value: 1, done: false}
Resume
{value: 2, done: false}
End
{Value: undefined, done: true}
它是如何运作的
next() 上的执行: 当第一次调用next()时,生成器启动 执行并运行直到第一个yield。 它返回对象{value,done},其中: value:yield产生的价值。 done:一个布尔值,指示生成器是否已完成 暂停和恢复。 函数遇到yield时暂停执行。 当再次调用 next() 时,它会从暂停处恢复。 完成: 当生成器函数完成时,done 属性变为 是的。以上就是JavaScript 中的生成器函数是什么?以及它是如何运作的?的详细内容,更多请关注php中文网其它相关文章!