У меня есть следующий код
Шаблон:
<li *ngFor="let message of messages”>
…
…
<img [src]="getThumbnail$(message) | async”>
</li>
Компонент:
private thumbnails$: { [id: number]: Observable<string> } = {};
getThumbnail$(message: Message): Observable<string> {
if (message.isImage && message.attachedFileId === undefined) {
return of(this.getImageBase64(imageTiny));
}
if (message.gps && message.imageTiny === undefined) {
return of(this.getPlaceHolderLocation());
}
if (this.thumbnails$[message.id] !== undefined) {
return this.thumbnails$[message.id];
}
const thumbnail$ = new BehaviorSubject<string>(this.getImageBase64(message.imageTiny));
this.thumbnails$[message.id] = thumbnail$;
this.loadImageAsync(message,thumbnail$); // this loads the big image and emits the result
return thumbnail$;
}
Мне интересно, есть ли лучший способ управления наблюдаемыми всписок.Цель миниатюр карты $ здесь состоит в том, чтобы избежать создания новой наблюдаемой каждый раз, когда угловые вызывает метод getThumbnail $.
Нужно ли мне сохранять себя наблюдаемыми?
Могу ли я "контролировать", как и когда angular вызывает этот метод?
Спасибо