【发布时间】:2021-03-15 04:57:56
【问题描述】:
大家好,我正在尝试掌握 RxJS 库和反应式编程的整个理念。
我正在尝试将两个可观察对象合并为一个。第一个 observable 包含一个对象数组DefectImages[],第二个 observable 包含一个字符串数组,然后我将其转换为一个DefectImages[] 数组。之后,我想将这两个 observables 合并为一个。
在我的代码下面:
const observable = CachedPhotosBuffer.getInstance().asObservable()
.pipe(
switchMap(data => {
return data.map((url) => DefectImage.createTempImage(url, 'you', Date.now()));
})
);
this.observable = Observable.create(observer => observer.next(this.defectImages));
this.observable.pipe(
merge(observable)
).subscribe(data => console.log('merge', data))
这种工作如我所料,但这个合并的 observables 连接到 HTML Angular 模板。
<ion-list>
**<ng-container *ngFor="let image of observable | async">**
<ion-item *ngIf="image.deletedAt === undefined">
<span class="item-container" (click)="showImage(image)">
<ion-thumbnail item-start>
<img id="{{image.url}}" src="{{getUrl(image) + image.url}}">
</ion-thumbnail>
<span>
<p>created at: {{image.createdAt | date: 'd/M/yy H:m'}}</p>
<p>created by: {{image.createdBy}}</p>
</span>
</span>
<button ion-button item-end (click)="removeImage(image)">
<ion-icon name="trash"></ion-icon>
</button>
</ion-item>
</ng-container>
</ion-list>
我的问题是为什么每个流都有两个单独的日志,而不是一个包含所有数据的控制台日志?
【问题讨论】:
标签: javascript angular rxjs reactive-programming