UNPKG

strophe.js

Version:

Strophe.js is an XMPP library for JavaScript

59 lines (54 loc) 1.83 kB
/** * _Private_ helper class for managing timed handlers. * * A Strophe.TimedHandler encapsulates a user provided callback that * should be called after a certain period of time or at regular * intervals. The return value of the callback determines whether the * Strophe.TimedHandler will continue to fire. * * Users will not use Strophe.TimedHandler objects directly, but instead * they will use {@link Strophe.Connection#addTimedHandler|addTimedHandler()} and * {@link Strophe.Connection#deleteTimedHandler|deleteTimedHandler()}. * * @memberof Strophe */ class TimedHandler { /** * Create and initialize a new Strophe.TimedHandler object. * @param {number} period - The number of milliseconds to wait before the * handler is called. * @param {Function} handler - The callback to run when the handler fires. This * function should take no arguments. */ constructor(period, handler) { this.period = period; this.handler = handler; this.lastCalled = new Date().getTime(); this.user = true; } /** * Run the callback for the Strophe.TimedHandler. * * @return {boolean} Returns the result of running the handler, * which is `true` if the Strophe.TimedHandler should be called again, * and `false` otherwise. */ run() { this.lastCalled = new Date().getTime(); return this.handler(); } /** * Reset the last called time for the Strophe.TimedHandler. */ reset() { this.lastCalled = new Date().getTime(); } /** * Get a string representation of the Strophe.TimedHandler object. * @return {string} */ toString() { return '{TimedHandler: ' + this.handler + '(' + this.period + ')}'; } } export default TimedHandler;