UNPKG

pusher-js

Version:

Pusher Channels JavaScript library for browsers, React Native, NodeJS and web workers

40 lines (36 loc) 982 B
import Timer from './abstract_timer'; import TimedCallback from './timed_callback'; import { Delay } from './scheduling'; // We need to bind clear functions this way to avoid exceptions on IE8 function clearTimeout(timer) { global.clearTimeout(timer); } function clearInterval(timer) { global.clearInterval(timer); } /** Cross-browser compatible one-off timer abstraction. * * @param {Number} delay * @param {Function} callback */ export class OneOffTimer extends Timer { constructor(delay: Delay, callback: TimedCallback) { super(setTimeout, clearTimeout, delay, function(timer) { callback(); return null; }); } } /** Cross-browser compatible periodic timer abstraction. * * @param {Number} delay * @param {Function} callback */ export class PeriodicTimer extends Timer { constructor(delay: Delay, callback: TimedCallback) { super(setInterval, clearInterval, delay, function(timer) { callback(); return timer; }); } }