【问题标题】:What is this argument that you can send to Angular's $interval service?你可以发送到 Angular 的 $interval 服务的这个参数是什么?
【发布时间】:2017-04-22 23:21:57
【问题描述】:

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

例如

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

我在这里包含了这个 jsfiddle:https://jsfiddle.net/v3xLop5m/

即使在我运行$interval.cancel(animation) 之后,它似乎还在继续增加,我想知道这是解决这个问题的线索还是红鲱鱼。

【问题讨论】:

    标签: javascript angularjs intervals


    【解决方案1】:

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

    $interval的用法如下:

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

    关于第一个参数,回调函数的文档说:

    应该重复调用的函数。如果未传递其他参数,则使用当前迭代计数调用该函数。

    由于您只向$interval 传递了两个参数,因此您处于没有其他参数的情况。

    参考documentation for $interval

    作为旁注,如果您写var counter = $interval(...),取消间隔的正确调用是$interval.cancel(counter)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-06
      • 2023-03-16
      • 2016-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-03
      • 2021-12-06
      相关资源
      最近更新 更多