【发布时间】:2017-07-31 21:48:27
【问题描述】:
我有一个可观察的数组。每个 observable 都是一个需要通过 HTTP 请求上传的文件。
我想做两件事:
- 对于每个上传的文件,我必须发出将在父组件中处理的事件。
- 上传所有文件后,我会返回通知所有可观察对象已完成。
我从这段代码开始:
this.isUploading$ = Observable.of(true);
const source$ = Observable.from(files)
.concatMap(file => this.uploadSingleFile(file));
source$.subscribe(data => this.onSuccess.emit(data));
可观察到的isUploading$ 表示上传过程已启动并在 HTML 中使用。我想根据isUploading$ 的状态显示微调器。
Observable source$ 表示文件上传操作,因为 this.uploadSingleFile(file) 方法返回 Observable<Response>。
此代码将上传所有文件并在每个完成的 observable 上执行 this.onSuccess.emit(data)。
问题是:当一切都完成后,如何将this.isUploading$ 设置为false?
更新:
我想实现这样的目标,但没有在 onCompleted 函数中分配变量。示例:
source$.subscribe(data => this.onSuccess.emit(data),
err => console.log(err),
() => this.isUploading = false );
我想检索两个 observables 并在以后随时订阅它们。
【问题讨论】:
标签: angular typescript rxjs