您可以发送给Angular的$ interval服务的这个参数是什么?

问题描述:

如果我在运行Angular的$ interval服务时将参数传递给匿名函数,那么每次迭代都会增加一个数字。

例如

var counter = $interval(function(n) { 
    console.log(n); // increases by one every iteration 
}, 1000); 

我已经包含了这个的jsfiddle这里:https://jsfiddle.net/v3xLop5m/

这似乎让我跑$interval.cancel(animation),我想知道,如果它是一个线索或红色鲱鱼,以解决这个问题即使提高。

Angular将当前迭代计数作为参数传递给回调函数。因此,在您的示例中,n的值是迭代计数,并且每隔一秒显示一次,因为您已经为间隔延迟传递了1000毫秒。

$interval用法如下:

$interval(fn, delay, [count], [invokeApply], [Pass]); 

约在第一个参数的文件,回调函数,说:

应该反复调用的函数。如果没有附加的参数被传递,则使用当前迭代计数调用该函数。

由于您只向$interval传递了两个参数,因此您无需附加参数。

清参见documentation for $interval

作为一个侧面说明,如果你写var counter = $interval(...),适当呼吁取消间隔为$interval.cancel(counter)