Вы можете определить отдельную переменную для отображения в шаблоне. И меняйте его значение каждую секунду на значения в массиве items
. Попробуйте следующий
Компонент
items = [];
itemToRender: any;
constructor(private getItemsService: getItemsService)
ngOnInit() {
this.getItemsService.getItem().subscribe(items => {
this.items = items;
this.renderItemsSequentially();
});
}
private renderItemsSequentially() {
let i = 0;
let length = this.items.length - 1;
const intervalId = setInterval(() => {
if (i < length) {
this.itemToRender = this.items[i];
i++;
} else {
delete this.itemToRender;
clearInterval(intervalId);
}
}, 1000);
}
Он использует setInterval()
метод для l oop массива каждую секунду. Вы можете удалить delete this.itemToRender;
, если хотите, чтобы элемент сохранялся в DOM после отображения всех элементов. Если нет, элемент будет удален после того, как все элементы будут зациклены.
И отрендерим переменную itemToRender
в шаблоне. Я использую канал json
, потому что вы упомянули items
- список объектов.
<div *ngIf="itemToRender">Current item: {{ itemToRender | json }}</div>
Рабочий пример: Stackblitz