У меня есть приложение в angular2, в котором я должен воспроизвести историю событий.
Итак, когда я нажимаю кнопку PLAY, она должна начинаться с первого события, оставаться там в течение 3 секунд, затем идтидо следующего события, оставайтесь там еще 3 секунды, затем до следующего и т. д.
Список событий является динамическим.
Дело в том, что при простом setTimeOut
этоне работает, и я хочу знать, есть ли другой способ решить, что мне нужно.
Я пробовал это:
play() {
if (this.history !== undefined) {
this.playMode = true;
const allEvents = this.history;
const historyLength = allEvents.length;
const progressInterval = 100 / historyLength;
allEvents.forEach(e => {
console.log(e);
setTimeout(t => {
this.progress += progressInterval;
}, 3000);
});
}
}
, и мне нужна переменная this.progress, чтобы показать степень вa mat-progress-barr
<mat-progress-bar *ngIf="playMode" strokeWidth="0.5" mode="determinate" [value]="progress" color="accent"></mat-progress-bar>
Очевидно, мой код работает не так, как я хочу.
Как я могу сделать эту «задержку»?