【问题标题】:Cancel $interval when execution count is set? [duplicate]设置执行计数时取消 $interval? [复制]
【发布时间】:2019-10-21 23:01:18
【问题描述】:

当我像这样启动$interval 时:

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

它将被执行一次(因为设置了执行计数参数)。

我的问题 我还需要打电话给$interval.cancel(intervalPromise)(关于记忆),还是没有必要?

docs

将在每次迭代时通知的承诺。一旦间隔的所有迭代完成,它将解决。

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

【问题讨论】:

标签: javascript angularjs setinterval


【解决方案1】:

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

根据接受的答案,在指定次数后执行发生后,间隔将被清除。回答的人似乎不太确定,但这是我在大量搜索网络后发现的唯一可以说是好的推理。

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

【讨论】:

  • 哦,我没找到那个。它有点老了,但是 AngularJs 源的链接让我明白了:达到计数后,angular 调用 clearInterval 函数。谢谢!
  • 很高兴能帮上忙...
猜你喜欢
  • 2019-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-20
  • 1970-01-01
  • 2014-03-25
相关资源
最近更新 更多