Overwriting existing event schedule doesn't replace existing interval
Environment
- OS version: N/A
- Browser version: N/A
- Extension version: 71940042
- Last working version: N/A
Steps to reproduce
Run the following code:
scheduledEventEmitter.setListener("foo", () => console.log("foo"));
await scheduledEventEmitter.setSchedule("foo", 10 * 1000, ScheduleType.interval);
await scheduledEventEmitter.setSchedule("foo", 10 * 1000, ScheduleType.interval);
setTimeout(() => console.log("done"), 35 * 1000);
Observed behavior
- Warning without stack trace is shown when the extension starts:
[ScheduledEventEmitter]: Could not restore stored schedules.
- Warning without stack trace is shown when calling
scheduledEventEmitter.setSchedule()
a second time:[ScheduledEventEmitter]: Overwriting already registered schedule for name "foo".
- Log message appears six times before "done" log message.
Expected behavior
- No warning is shown when the extension starts.
- Warning with stack trace is shown when calling
scheduledEventEmitter.setSchedule()
a second time:[ScheduledEventEmitter]: Overwriting already registered schedule for name "foo".
- Log message appears three times before "done" log message.
Further information
This also applies to events that are only emitted once. Those are only emitted once, but at the earliest scheduled time, regardless of the order in which the events are scheduled.
Edited by Thomas Greiner