【发布时间】:2019-10-21 23:01:18
【问题描述】:
当我像这样启动$interval 时:
$interval(() => {
console.log("interval executed");
}, 0, 1);
它将被执行一次(因为设置了执行计数参数)。
我的问题
我还需要打电话给$interval.cancel(intervalPromise)(关于记忆),还是没有必要?
docs说
将在每次迭代时通知的承诺。一旦间隔的所有迭代完成,它将解决。
这让我怀疑,可能不需要调用cancel,但我不能 100% 确定 AngularJs 中的间隔如何像 VanillaJs 间隔那样影响内存。 (我的意思是:只要 VanillaJs 中没有清除间隔,垃圾收集器显然可以不收集间隔处理程序)
【问题讨论】:
-
如果您担心性能,那么您应该检验您的假设。从没有计时器开始,然后尝试 100 然后 10k 然后 1M 并检查内存使用情况。 developers.google.com/web/tools/chrome-devtools/memory-problems
标签: javascript angularjs setinterval