grafana/public/app/services/timer.js
2015-03-29 12:57:28 +02:00

34 lines
695 B
JavaScript

define([
'angular',
'lodash'
],
function (angular, _) {
'use strict';
var module = angular.module('grafana.services');
module.service('timer', function($timeout) {
// This service really just tracks a list of $timeout promises to give us a
// method for cancelling them all when we need to
var timers = [];
this.register = function(promise) {
timers.push(promise);
return promise;
};
this.cancel = function(promise) {
timers = _.without(timers,promise);
$timeout.cancel(promise);
};
this.cancel_all = function() {
_.each(timers, function(t) {
$timeout.cancel(t);
});
timers = [];
};
});
});