当我像这样启动$interval
时:
$interval(() => {
console.log("interval executed");
}, 0, 1);
它将执行一次(由于设置了执行计数参数)。
我的问题
我是否仍然必须致电$interval.cancel(intervalPromise)
(关于内存),还是不必要?
docs说
一个诺言,将在每次迭代中得到通知。间隔的所有迭代完成后,它将解决。
这让我怀疑,不一定需要调用cancel
,但是我不确定100%地确定AngularJs中的间隔如何影响 VanillaJs 间隔。 (我的意思是:只要在 VanillaJs 中不清除间隔,垃圾收集器显然就可以不收集间隔处理程序)
答案 0 :(得分:0)
Scipper,几个月前我也有类似的疑问,此后我在SO上遇到了类似的问题。
根据接受的答案,间隔在指定次数的执行后清除。回答这个问题的人似乎不确定,但这是我在网上搜索了很多之后才发现的唯一可以说是很好的理由。
这是SO article on the similar issue-Does the angular $interval cancel itself after exceeding 'count' parameter?