我想在angular.foreach
循环中使用延迟。我有一个列表,我希望逐个显示它们2秒钟。
angular.forEach(vm.SimulationResult, function (value, key) {
timeout2 = $timeout(function () {
vm.Alerts.push({ msg: value.MainStatus });
}, 2000);
});
我该怎么办?
答案 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);
});
});
(确保您的角度版本是最新版本,因为旧版本不允许您在超时时省略回调函数)