我在JavaScript中第一次使用生成器函数并运行一些有趣的问题。console.log不从生成器函数调用
代码:
import moment from 'moment';
export default function recur(quantity, units) {
console.log('TESTING 1');
function* recurGenerator(startDate, maxDate) {
console.log('TESTING 2');
if (maxDate === undefined) {
this.throw('Argument maxDate is undefined');
}
let nextDate = moment(startDate).clone();
maxDate = moment(maxDate);
for (;;) {
nextDate = moment(nextDate).clone().add(quantity, units);
if (nextDate.isAfter(maxDate)) yield null;
yield nextDate;
}
}
return recurGenerator;
}
“测试2” 的console.log不会被调用。如果我不将maxDate传递给生成器函数,它也不会引发错误。这一定是关于我错过的发电机的事情。
编辑以显示用法
recur(1, 'day')(moment())
看来,被称为未来的需求第一屈服之前运行的代码?
在哪里使用该发生器的代码? – JJJ