我在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