一、基础语法
//*表示未生成器函数当为生成器函数时会有yield
function* 函数名() {
// 函数内容
yield;
}
二、调用 Generator 函数
函数名();
const it = 函数名();
下一步,调用迭代器的 next() 方法来进入函数执行函数内部代码。
it.next();
三、yield
function* myGenerator() {
console.log('1、myGenerator执行了');
yield;
console.log('2、myGenerator执行了');
}
const it = myGenerator();
it.next();
it.next();
yield 后面可以跟一个表达式:
function* myGenerator() {
console.log('1、myGenerator执行了');
yield 'hello';
console.log('2、myGenerator执行了');
yield 'world';
console.log('3、myGenerator执行了');
}
const it = myGenerator();
console.log(it.next());
console.log(it.next());
next() 还可以传递参数,这个参数会作为当前 yield 的返回值:
function* myGenerator() {
console.log('1、myGenerator执行了');
const res = yield 'hello';
console.log('res', res);
}
const it = myGenerator();
console.log(it.next());
console.log(it.next("world"));