我将此代码放在一个每1或2分钟调用一次的函数中。它只是从60倒数到0(我将60设置为最大迭代次数)。
var timer = $interval(
function (times: number) {
var retry = 60 - times;
$scope.retryMessage = "retry + " seconds";
}, 1000, 60);
从我可以看到的文档建议必须取消$ interval,但我什么时候可以这样做?我假设我不能只添加:
$interval.cancel(timer);
这段代码之后。
答案 0 :(得分:3)
$ interval返回一个承诺。你可以像这样取消它
var times = 60;
var promise = $interval(
function () {
var retry = 60 - (times++);
$scope.retryMessage = retry + " seconds";
if(retry == 30){ //cancel in 30 seconds instead .. for some reason
$interval.cancel(promise);
}
}, 1000, 60);
答案 1 :(得分:1)
根据文档,它看起来应该可行。
$interval.cancel(timer);