如标题所述,
每次我尝试使用$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!= undefinedrecordedAudio在2000ms后设置为"abc",$interval保持循环,同时
console.log(window.recordedAudio)
继续打印(+- 10次未定义,最后是ABC,但它继续打印ABC而不是停止)
您正在混合$interval
和$timeout.cancel
。