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

5

我有一个$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个回答

4
注册间隔函数的返回值是一个 Promise。这个 Promise 会在每次间隔的时候被通知,并在 count 次迭代后被解决。
因此:
$interval(lerp, 500, 5).then(fin);

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/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接