2013-11-28 62 views
0

我想在html表上做一个动画。如何使用angularjs承诺?

我使用$interval来逐一显示每一行。

var loadList = function() { 
    Obj.query(function(obj){ 
     $scope.objs = []; 
     $interval(function() {$scope.objs.push(obj.shift())}, 200, obj.length); 
    }); 
} 

然后有一个功能一个接一个, 删除每一行最后它的循环和重新载入表:

var cleanList = function() { 
    var delay = 200; 
    var n = $scope.objs.length; 

     if (n!==0) { 
      $interval(function() {$scope.objs.shift()}, delay, n); 
     } 
     $interval(function() { loadList() }, delay*n, 1); 
    } 

loadList(); 
$interval(cleanList, 7000); 

的代码在这里工作(这里是the plunker),但我想有一种方法可以在cleanList函数完成时触发一种“回调”或“承诺”来触发更好的事情吗?

我该怎么做?

回答

0

$ interval返回一个承诺,以便您可以简单地调用then()就可以了。

例如:

$interval(function() {$scope.objs.push(obj.shift())}, 200, obj.length).then(cleanList); 

这里的工作plunkr例如:

http://plnkr.co/edit/rYzXjM?p=preview