如标题所述,
每次我尝试使用 $ 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而不是停止打印)。
答案 0 :(得分:1)
您正在混合$interval
和$timeout.cancel
。