Skip to content

setInterval() function triggerred 100+ times at the same time. #239

@zjh1943

Description

@zjh1943

Code Explain

Code like the below:

later.date.localTime();

const timeStr = moment().add(1, 'm').format('HH:mm'); // time of next minute
const text = `at ${timeStr} also every 1 hour`; // want to trigger `fn` at next minute and every hour from now on.

console.log(`text: ${text}`)
const sched = later.parse.text(text);

console.log(`next 10 occurence: `, later.schedule(sched).next(24)); // this display right.
const fn = function() {
  console.log(`curr time: `, moment().format('HH:mm:ss'));
  console.log(`next 10 occurence: `, later.schedule(sched).next(24));
};
later.setInterval(fn, sched); // the `fn` function will be triggered 100+ times after one minute from now on.

As commented above.

  1. I want to trigger at next minute AND every 1 hour from now on.
  2. later.schedule.next() function works well. It displays exactly what I expect.
  3. But, when invoke 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/:

  1. open url.
  2. open console.
  3. run.
  4. wait the next minute come.

Log

When you run the code above, console log will be like this:

LOG - CLICK TO SHOW

(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 (中国标准时间)]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions