У меня есть список объектов, которые я получаю из HTTP-запроса GET.
http.get<Array<Item>>(url)
Я использую в своем шаблоне директиву * ngFor для отображения элементов. Поскольку я работаю напрямую с Observable, я использую asyncPipe. Таким образом, если я хорошо понимаю, мне не нужно использовать промежуточный список объектов, и мне не нужно вручную подписываться на результат HTTP-запроса GET.
<tr *ngFor="let item of itemList | async ">
Теперь я хотел бы реализовать автоматическое обновление моего списка. Когда я впервые получаю элементы, если некоторые из них находятся в особом состоянии, я хотел бы обновлять наблюдаемый массив, пока все элементы не будут в желаемом состоянии.
Можно ли сделать это без использования промежуточного списка элементов и подписаться вручную?
Я пробовал что-то подобное, у меня почти такое поведение, как я ожидал, но без обновления моего шаблона:
ngOnInit() {
this.itemList = this.itemService.getItemList().do(items => {
let processingItem = items.filter(item => item.status == ItemStatus.InProcess);
if (processingItem.length > 0) {
Observable.timer(5000).subscribe(() => this.itemList.subscribe());
}
});
}
Где getItemList () возвращает Observable ‹Array ‹Item>>