如果条件为真,我有一个时间间隔后执行的操作。我正在做这样的事情
if($scope.goToNextPage==true){
setTimeout(() => {
$scope.location.path('nextPage');
},4000)
}
但是,如果$scope.goToNextPage
在此持续时间内发生变化,我需要停止执行此操作。我有什么方法可以做到这一点吗?
答案 0 :(得分:0)
在执行该语句之前可以使用其他条件,如
if ($scope.goToNextPage) {
setTimeout(() => {
if (!$scope.goToNextPage) {
return false;
}
$scope.location.path('nextPage');
}, 4000)
}
也不需要检查==
,你可以直接添加变量,因为它是boolean
答案 1 :(得分:0)
停止执行时将goToNextPage更改为false。然后再次检查如下,
if($scope.goToNextPage==true){
setTimeout(() => {
if($scope.goToNextPage){
$scope.location.path('nextPage');
}
},4000)
}
答案 2 :(得分:0)
使用angularjs的$timeout
服务。它返回可以通过$ timeout.cancel方法取消的promise。 Ref