【发布时间】:2020-10-07 12:20:38
【问题描述】:
问:我有一个问题。 finalize 操作符在源完成或完成 Observable 时被调用。这很清楚。但是我们如何预测它不会因为 Source observable 的变化而再次发出值呢?或者finalize 将在完成第一次发射后终止原始 Observable。即不再像take(1) 这样的源发出。
我使用AngularFireStorage module 下载网址。我需要在它返回 URL 后完成 observable。我怎样才能做到这一点?即无需在此处取消订阅。
这会奏效还是更好的方法?获取下载地址后如何自动退订?
afUploadTask.snapshotChanges().pipe(take(1), finalize(() => this.downloadURL
= afStorageReference.getDownloadURL())).subscribe();
这是文档中的原始示例:
task.snapshotChanges().pipe(
finalize(() => this.downloadURL = fileRef.getDownloadURL() )
)
.subscribe()
【问题讨论】:
标签: angular typescript ionic-framework rxjs firebase-storage