JavaScript 将值发送到生成器
示例
通过将值传递给生成器,可以将其发送给生成器next()。
function* summer() {
let sum = 0, value;
while (true) {
//接收发送的值
value = yield;
if (value === null) break;
//汇总值
sum += value;
}
return sum;
}
let generator = summer();
// proceed until the first "yield" expression, ignoring the "value" argument
generator.next();
// from this point on, the generator aggregates values until we send "null"
generator.next(1);
generator.next(10);
generator.next(100);
//关闭发电机并收集结果
let sum = generator.next(null).value; //111