let x = 1;
// * 贴近函数签名
function *foo() {
x++;
yield;
console.log("x: ", x);
}
const it = foo(); // 1
it.next(); // 2
console.log(x); // 3
it.next(); // 4
console.log(x); // 5
过程解释
it
对象,以后都是使用此对象来运行生成器的工作流程yield
处后,暂停每次调用 it.next()
时,如果流程没有结束的话,都会从上一次暂停的地方(yield
)后的语句开始执行