我想在x间隔秒后启动计时器。这个x间隔秒将来自服务器端。
现在我有一些进程在服务器端和页面加载我调用getData方法,它启动基于isRunning标志的计时器,我显示进度 直到我发现isRunning false然后停止计时器。
因此,如果用户已经在我的页面上,我有1个调度作业,将在x秒后运行,所以我希望这个getData在x秒后调用。现在一旦用户进入页面,getData就会继续运行到服务器端获得进度安排工作。
因此,我想我将获得第一个计划作业的总秒数,并配置我的计时器以在x秒后启动getData方法,如果用户执行刷新页面的话。
但是在这里我没有得到如何配置$ scope.startTimer方法,它将在x秒后启动。例如:如果调度作业将在一小时后运行,那么启动计时器方法应该只启动1小时后继续每2秒调用一次getData方法。
以下是我的代码:
function getData() {
myService.get(function (response) {
if ($scope.isRunning)
$scope.startTimer();
else
$scope.stopTimer();
//response.totalSeconds;here i will get total seconds after which i want to call this method again to show progress of schedule job
});
}
var stop;
$scope.startTimer = function () {
// Don't start a new timer
if (angular.isDefined(stop)) return;
stop = $interval(function () {
if ($scope.refreshTimer > 0) {
$scope.timerLabel = false;
$scope.refreshTimer = $scope.refreshTimer - 1;
} else { //REFERSH CALL
$scope.stopTimer();
getMockProgress();
}
}, 2000);
};
$scope.stopTimer = function () {
if (angular.isDefined(stop)) {
$interval.cancel(stop);
stop = undefined;
}
};
更新:
else
$scope.stopTimer();
if (response.milliSeconds > 0)
setTimeout($scope.startTimer, response.milliSeconds);
但是这在x毫秒后无法调用startTimer
方法。
我将不胜感激任何帮助:)