通过将值传递给生成器,可以将其发送给生成器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