AngularJS'$ interval.cancel无效

时间:2015-06-07 23:45:26

标签: angularjs

如标题所述,

每次我尝试使用 $ interval.cancel 来取消现有的间隔时,它都不起作用。

window.recordedAudio = undefined;

var isRecordingComplete = $interval(function(){
    console.log(window.recordedAudio);
    if (window.recordedAudio!=undefined) $timeout.cancel(isRecordingComplete);
},100);

$timeout(function(){
    window.recordedAudio = "abc";
},2000);

实际上,当 window.recordedAudio!= undefined (在2000ms之后window.recordedAudio设置为“abc”)时, $ interval 会保持循环并且保持相同时间

console.log(window.recordedAudio)

不断打印(+ - 10次未定义,最后是abc,但它会一直打印abc而不是停止打印)。

1 个答案:

答案 0 :(得分:1)

您正在混合$interval$timeout.cancel