AngularJS foreach延迟循环

时间:2016-04-05 09:57:32

标签: angularjs loops foreach timeout

我想在angular.foreach循环中使用延迟。我有一个列表,我希望逐个显示它们2秒钟。

 angular.forEach(vm.SimulationResult, function (value, key) {
                    timeout2 = $timeout(function () {
                        vm.Alerts.push({ msg: value.MainStatus });
                    }, 2000);
                });

我该怎么办?

1 个答案:

答案 0 :(得分:4)

利用$ timeout返回一个promise并将promises链接在一起这样的事实,这样每个人都会启动另一个promise超时来推送下一个警告:

let promise = $timeout();
angular.forEach(vm.SimulationResult, function(value, key) {
     promise = promise.then(function() {
         vm.Alerts.push({ msg: value.MainStatus });
         return $timeout(2000);
     });
});

(确保您的角度版本是最新版本,因为旧版本不允许您在超时时省略回调函数)