Open zjh1943 opened 4 years ago
This issue and entire repo is a little cold, but in case anyone stumbles upon here with a similar issue, here's my two cents.
I had a similar issue, but I was using simple schedules, instead of any of the schedule-building methods. I eventually discovered it was an issue where I had a schedule that included [ {m:[30]}, {h:[0,9]} ]
. I wanted it to fire at the bottom of every hour, and also at the top of hours 0 and 9 - and I thought that was how to do it. As @zjh1943 mentioned above, the later.schedule.next()
seemed to indicate that everything would go according to my plan. However, the setInterval()
went haywire at 0030 and 0930, calling over and over again. To fix, I changed it to [ {m:[30]}, {h:[0,9], m:[0]} ]
so that the 2nd schedule was explicit with its' minutes. It's not clear from the documentation if this is how it is supposed to work.
Code Explain
Code like the below:
As commented above.
later.schedule.next()
function works well. It displays exactly what I expect.setInterval()
,fn
will be invoked 100+ times at the next minute in a flash.How to Replay
You can replay the bug on https://jsfiddle.net/xLobgnuh/6/:
Log
When you run the code above, console log will be like this:
LOG - CLICK TO SHOW
```sh (index):39 text: at 17:27 also every 1 hour (index):42 next 10 occurence: (24) [Mon Feb 03 2020 17:26:27 GMT+0800 (中国标准时间), Mon Feb 03 2020 17:27:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 18:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 19:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 20:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 21:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 22:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 23:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 00:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 01:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 02:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 03:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 04:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 05:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 06:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 07:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 08:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 09:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 10:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 11:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 12:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 13:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 14:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 15:00:00 GMT+0800 (中国标准时间)]0: Mon Feb 03 2020 17:26:27 GMT+0800 (中国标准时间) {}1: Mon Feb 03 2020 17:27:00 GMT+0800 (中国标准时间) {}2: Mon Feb 03 2020 18:00:00 GMT+0800 (中国标准时间) {}3: Mon Feb 03 2020 19:00:00 GMT+0800 (中国标准时间) {}4: Mon Feb 03 2020 20:00:00 GMT+0800 (中国标准时间) {}5: Mon Feb 03 2020 21:00:00 GMT+0800 (中国标准时间) {}6: Mon Feb 03 2020 22:00:00 GMT+0800 (中国标准时间) {}7: Mon Feb 03 2020 23:00:00 GMT+0800 (中国标准时间) {}8: Tue Feb 04 2020 00:00:00 GMT+0800 (中国标准时间) {}9: Tue Feb 04 2020 01:00:00 GMT+0800 (中国标准时间) {}10: Tue Feb 04 2020 02:00:00 GMT+0800 (中国标准时间) {}11: Tue Feb 04 2020 03:00:00 GMT+0800 (中国标准时间) {}12: Tue Feb 04 2020 04:00:00 GMT+0800 (中国标准时间) {}13: Tue Feb 04 2020 05:00:00 GMT+0800 (中国标准时间) {}14: Tue Feb 04 2020 06:00:00 GMT+0800 (中国标准时间) {}15: Tue Feb 04 2020 07:00:00 GMT+0800 (中国标准时间) {}16: Tue Feb 04 2020 08:00:00 GMT+0800 (中国标准时间) {}17: Tue Feb 04 2020 09:00:00 GMT+0800 (中国标准时间) {}18: Tue Feb 04 2020 10:00:00 GMT+0800 (中国标准时间) {}19: Tue Feb 04 2020 11:00:00 GMT+0800 (中国标准时间) {}20: Tue Feb 04 2020 12:00:00 GMT+0800 (中国标准时间) {}21: Tue Feb 04 2020 13:00:00 GMT+0800 (中国标准时间) {}22: Tue Feb 04 2020 14:00:00 GMT+0800 (中国标准时间) {}23: Tue Feb 04 2020 15:00:00 GMT+0800 (中国标准时间) {}length: 24__proto__: Array(0) (index):44 curr time: 17:27:00 (index):45 next 10 occurence: (24) [Mon Feb 03 2020 17:27:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 17:27:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 18:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 19:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 20:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 21:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 22:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 23:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 00:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 01:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 02:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 03:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 04:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 05:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 06:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 07:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 08:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 09:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 10:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 11:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 12:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 13:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 14:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 15:00:00 GMT+0800 (中国标准时间)] (index):44 curr time: 17:27:00 (index):45 next 10 occurence: (24) [Mon Feb 03 2020 17:27:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 17:27:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 18:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 19:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 20:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 21:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 22:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 23:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 00:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 01:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 02:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 03:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 04:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 05:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 06:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 07:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 08:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 09:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 10:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 11:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 12:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 13:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 14:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 15:00:00 GMT+0800 (中国标准时间)] (index):44 curr time: 17:27:00 (index):45 next 10 occurence: (24) [Mon Feb 03 2020 17:27:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 17:27:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 18:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 19:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 20:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 21:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 22:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 23:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 00:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 01:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 02:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 03:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 04:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 05:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 06:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 07:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 08:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 09:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 10:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 11:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 12:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 13:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 14:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 15:00:00 GMT+0800 (中国标准时间)] ... (200+ lines omit) .... (index):44 curr time: 17:27:01 (index):45 next 10 occurence: (24) [Mon Feb 03 2020 17:27:01 GMT+0800 (中国标准时间), Mon Feb 03 2020 18:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 19:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 20:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 21:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 22:00:00 GMT+0800 (中国标准时间), Mon Feb 03 2020 23:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 00:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 01:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 02:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 03:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 04:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 05:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 06:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 07:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 08:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 09:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 10:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 11:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 12:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 13:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 14:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 15:00:00 GMT+0800 (中国标准时间), Tue Feb 04 2020 16:00:00 GMT+0800 (中国标准时间)] ```