Я пытаюсь поместить задержку в цикл forEach в AngularJS. С $ timeout они запускаются один раз в одно и то же время. С $ интервалом они попадают в бесконечный цикл, опять же в то же время.
Мне нужна функция задержки между итерациями цикла forEach для запуска анимации с задержкой последовательности, а не в одно и то же время.
...
vm.questions = [
{correct:false,animateDemo:false},
{correct:true,animateDemo:false},
{correct:true,animateDemo:false}
];
vm.questions.forEach(function(question, idx) {
// need a delay between animationDemo assignments
$timeout(function(){
if (question.correct) {
question.animateDemo = true;
}
},1000);
});
Я тоже пробовал интервал, но это вызывает бесконечный цикл.
vm.questions = [{correct:false}. {correct:true}, {correct:true}];
vm.questions.forEach(function(question, idx) {
// causes infinite loop
$interval(function(){
if (question.correct) {
question.animateDemo = true;
}
},1000);
});
Я уверен, что решение, вероятно, является чем-то простым, но использование этого синтаксиса меня немного смущает.