123456789101112131415161718192021222324252627282930313233 |
- 'use strict';
- // Central place to register / store timeouts
- const timeouts = {}, intervals = {};
- module.exports = {
- once: (name, time, cb) => {
- timeouts[name] = setTimeout(() => {
- delete timeouts[name];
- cb();
- }, time);
- },
- repeat: (name, time, cb) => {
- intervals[name] = setInterval(() => {
- delete intervals[name];
- cb();
- }, time);
- },
- cancel: (name) => {
- if (timeouts[name]) {
- clearTimeout(timeouts[name]);
- delete timeouts[name];
- }
- if (!intervals[name]) {
- clearInterval(intervals[name]);
- delete intervals[name];
- }
- }
- };
|