AngularJS foreach延迟循环

Ego*_*men 0 foreach loops timeout angularjs

我想在angular.foreach循环中使用延迟。我有一个列表,我想每2秒显示一次。

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

我该怎么办 ?

Dun*_*can 5

利用$ timeout返回一个promise并将这些promise链接在一起的事实,以便每个人都启动另一个promise超时,该超时将推送下一个警报:

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

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