Q: У меня вопрос. Оператор finalize
был вызван, когда источник завершил или завершил Observable. Это ясно. Но как мы можем предсказать, не будет ли он снова выдавать значение из-за изменения наблюдаемого источника? Или finalize
завершит исходный наблюдаемый объект после завершения его первого выброса. т.е. больше не будет излучений из источника, например take(1)
.
Я использую модуль AngularFireStorage для загрузки URL. Мне нужно завершить наблюдаемое после того, как он вернул URL-адрес. Как я могу это сделать? т.е. без отказа от подписки здесь.
Будет так работать или лучше? Как я могу автоматически отказаться от подписки после получения URL-адреса загрузки?
afUploadTask.snapshotChanges().pipe(take(1), finalize(() => this.downloadURL
= afStorageReference.getDownloadURL())).subscribe();
Это оригинальный пример из do c:
task.snapshotChanges().pipe(
finalize(() => this.downloadURL = fileRef.getDownloadURL() )
)
.subscribe()