如何在间隔结束后调用函数?

时间:2016-01-31 00:10:34

标签: javascript angularjs intervals

我有$interval调用了一定次数。

当间隔运行完毕后,我想让它调用最终的重置功能。我怎样才能做到这一点?

即。

  $scope.clickme = function() {
    var i = 0;

    function lerp() {
      alert(i++);
    }

    function fin(){    //how do I call this function? 
        alert ("all done!")
    }

    $interval(lerp, 500, 5);
  };

JSFiddle:http://jsfiddle.net/h4cn32e6/1/

2 个答案:

答案 0 :(得分:3)

  

注册间隔函数的返回值是一个承诺。该承诺将在间隔的每个滴答时得到通知,并将在计数迭代后解析

所以:

$interval(lerp, 500, 5).then(fin);

答案 1 :(得分:0)

$interval返回一个promise,它将在完成所有迭代的执行后解析。

只需使用promise.then执行最终任务..

  $scope.clickme = function() {
    var i = 0;

    function lerp() {
      alert(i++);
    }

    function fin(){
        alert ("all done!")
    }

    var promise = $interval(lerp, 500, 5);

    promise.then(fin);
  };

http://jsfiddle.net/0wuwnhxo/