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。

posted @ 2017-06-21 16:32  发福大叔  阅读(323)  评论(0编辑  收藏  举报