碎片时间学编程「287]:重复生成器

创建一个生成器,无限期地重复给定的值。
使用非终止while循环,每次Generator.prototype.next()调用都会有一个 yield 值。
如果传递的值不是 yield ,则使用语句的返回值 undefined 更新返回值
JavaScript
const repeatGenerator = function* (val) { let v = val; while (true) { let newV = yield v; if (newV !== undefined) v = newV; }};
示例
const repeater = repeatGenerator(5);repeater.next(); // { value: 5, done: false }repeater.next(); // { value: 5, done: false }repeater.next(4); // { value: 4, done: false }repeater.next(); // { value: 4, done: false }
更多内容请访问我的网站:https://www.icoderoad.com