service $interval
AngularJS's 包装 window.setInterval
. fn函数每延迟几毫秒就执行一次。
注册间隔函数的返回值是一个promise。这个promise将在每一个时间间隔内得到通知,并且在计数迭代之后将被解析,或者如果没有定义计数,则将无限期地运行。通知的值将是运行的迭代次数。取消一个间隔,调用$interval.cancel(promise)。
在测试中,您可以使用$interval.flush(millis)
以毫秒计的时间向前移动,并触发在该时间内运行的任何函数。
注意:该服务创建的间隔必须在完成后被显式地销毁。特别是当控制器的作用域或指令的元素被破坏时,它们不会被自动销毁。您应该考虑这个问题,并确保在适当的时候总是取消这个时间间隔。请参见下面的示例,了解如何以及何时执行此操作。
用法:
$interval(fn, delay, [count], [invokeApply], [Pass]);
参数:
fn function 一个应该被反复调用的函数。如果没有传递额外的参数(见下),则使用当前迭代计数调用该函数。
delay number 每个函数调用之间的毫秒数。
count(optional)number 重复的次数。如果没有设置,或者0,将会无限重复
invokeApply(optional)number 如果设置为false跳过模型的脏检查,否则将在$apply块中调用fn。
Pass(optional) * 执行的函数的附加参数。
返回值:
promise 在每次迭代中都会得到通知。它将在所有迭代完成后解析。
方法:
cancel([promise]):取消与promise相关的任务。
参数:promise(optional)promise 由$interval函数返回。
返回值:boolean 如果任务被成功取消,则返回true。