javascript 中的生成器函数是一种特殊类型的函数,可以在执行过程中暂停和恢复。它使用 function* 语法定义,并使用yield 关键字顺序生成值。
生成器函数的主要特征
- 用 函数* 定义:
function* generatorfunction(){
yield 1;
yield 2;
yield 3;
yield 4;
}
2.返回一个迭代器
技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作
- 当调用生成器函数时,它不会立即执行。 相反,它返回一个迭代器对象。
- 迭代器有一个 next() 方法,用于控制
执行。
- 产量关键字:
- yield 关键字用于生成一个值并暂停生成器。
- 当再次调用 next() 时,生成器从 暂停的地方。
生成器函数示例:
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());
输出
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 属性变为 是的。









