我正在寻找一种方法来链接RxJS Observables以在Angular应用程序中实现以下步骤:
-
在后端服务器上创建Gallery实体
-
上传照片
-
使用时间戳更新后端服务器上的Gallery实体
-
更新包含结果的页面
我有一个Observable photoObservable
,它封装了相机组件关闭时完成的相机组件 .
这是我到目前为止的代码片段 . 中间的Observable链是我在努力的地方:
private photoObservable: Observable;
private photoObserver: Observer;
cameraClosed() {
this.photoObserver.complete();
}
uploadPhotoFromCamera(data) {
if (this.photoObservable == null) {
this.photoObservable = new Observable((observer) => {
this.photoObserver = observer;
});
this.galleryService.putGallery(...)
.mergeMap(
returnedGallery => {
// This where I need to upload photos as they are taken
// Each upload will return an Observable
})
.concatMap(
returnedGallery => {
this.galleryService.updateGallery(returnedGallery));
}
.subscribe(
returnedGallery => {
log('Gallery updated!');
);
}
this.photoObserver.next(data);
}
我已经尝试过concat和concatMap,因为它们都依赖于之前的Observable在下一次运行之前完成,但我无法让它工作 .
有没有办法使用RxJS运算符实现这一目标?在concat和forkjoin之间可能有某种混合吗?