У меня есть бэкэнд, который поддерживает магазин для внешнего интерфейса. с каждым попаданием я возвращаю полное хранилище, которое включает в себя массив сообщений, которые должны быть отображены.
Извлечение данных из бэкенда осуществляется через длинный опрос, реализованный в сервисе.
Проблема в том, что DOM не обновляется с каждым вызовом на сервер, я пытаюсь отобразить только обновление, а не полный массив.
с текущей имплантацией POM обновляется при каждом попадании. Есть способ решить??
Я попробовал следующий код:
В моем html-шаблоне:
<div *ngFor="let message of messages$ | async">
{{message}}
</div>
в файле компонентов ts:
messages$ = storeService.messages;
ngOnInit(){
this.messages$.subscribe();
}
в сервисе магазина:
get messages(): Observable<any> {
return this._messages.asObservable();
}
private _messages = new BehaviorSubject<any[]>([]);
messages$ = this._messages.asObservable()
storeGet$ = this.http.get(EndPoint)
getStore(){
return timer(0, 15000).pipe(
concatMap(() => storeGet$),
map(resp => {
this._messages.next(resp['messages'])
})
)
}