设置执行计数后取消$ interval吗?

时间:2019-06-06 12:11:04

标签: javascript angularjs setinterval

当我像这样启动$interval时:

$interval(() => {
  console.log("interval executed");
}, 0, 1);

它将执行一次(由于设置了执行计数参数)。

我的问题 我是否仍然必须致电$interval.cancel(intervalPromise)(关于内存),还是不必要?

docs

  

一个诺言,将在每次迭代中得到通知。间隔的所有迭代完成后,它将解决。

这让我怀疑,不一定需要调用cancel,但是我不确定100%地确定AngularJs中的间隔如何影响 VanillaJs 间隔。 (我的意思是:只要在 VanillaJs 中不清除间隔,垃圾收集器显然就可以收集间隔处理程序)

1 个答案:

答案 0 :(得分:0)

Scipper,几个月前我也有类似的疑问,此后我在SO上遇到了类似的问题。

根据接受的答案,间隔在指定次数的执行后清除。回答这个问题的人似乎不确定,但这是我在网上搜索了很多之后才发现的唯一可以说是很好的理由。

这是SO article on the similar issue-Does the angular $interval cancel itself after exceeding 'count' parameter?