【发布时间】:2016-02-17 01:26:05
【问题描述】:
在角度控制器内部,我试图停止间隔。如果有一个 .then 承诺链接到它,是否无法停止间隔?
为什么stopCount函数在这里起作用
var stop = $interval(function(){
console.log('testing interval');
}, 1000);
$scope.stopCount = function(){
$interval.cancel(stop);
}
但这里没有.then
var stop = $interval(function(){
console.log('testing interval');
}, 1000)
.then(function(){
console.log('complete')
});
$scope.stopCount = function(){
$interval.cancel(stop);
}
提前致谢!
【问题讨论】:
-
$timeout 将返回一个您可以调用 .then 的承诺,因为在某种意义上它就像一个承诺。它在一定时间后做某事。虽然间隔不同,但它一直在继续。所以一旦你启动它,你唯一能做的就是停止它
-
如果您想在 1 秒后执行 console.log,那么只需插入 $timeout 而不是 $interval 就可以了 :)
-
感谢您的解释!那么有没有办法在取消间隔后运行函数呢?
-
想想这个。 .then 方法返回一个新的承诺。所以你试图阻止新的承诺,而不是原来的承诺。
标签: javascript angularjs setinterval