Следующий код взят из моего сервисного компонента.Это требует, чтобы пользователь наблюдал и данные отправляли в BehaviorSubject.Я звоню form.service.formToSubmit$.next(form);
, чтобы обновить его.потому что CombineLatest также запускается, когда пользователь наблюдает, что он испускает, я проверяю, имеет ли formToSubmit значение NULL и установлен ли он в NULL после его отправки.Но это не стрельба, когда я обновляю formToSubmit.Я пытался просто обо всем.
this.formToSubmit$ = new BehaviorSubject<Forms>(null);
constructor(){
this.updateForm();
}
updateForm(){
combineLatest(this.authService.user$, this.formToSubmit$).pipe(
switchMap(([user, form]) =>{
if(form == null) return;
return this.afs.collection('networks').doc(user.activeNetworkProfile.id).collection('companyProfiles').doc(user.activeCompanyProfile.id).collection('inspectionForms').doc(form.id).set(JSON.parse(JSON.stringify(form))).then(success=>{
this.formToSubmit$.next(null);
}).catch(err=>{
this.formToSubmit$.next(null);
});
})
);
}
Это предыдущий код, который работал просто отлично.
updateFormdd(form: Forms){
return Observable.create(observer=>{
this.authService.user$.subscribe(user=>{
this.afs.collection('networks').doc(user.activeNetworkProfile.id).collection('companyProfiles').doc(user.activeCompanyProfile.id).collection('inspectionForms').doc(form.id).set(JSON.parse(JSON.stringify(form))).then(success=>{
observer.next(success);
observer.complete();
}).catch(err=>{
observer.err(err);
});
})
})
}
Но в конечном итоге цель состоит в том, чтобы выяснить, как выполнить вышеупомянутую функцию, но позволить мне объединить до 3наблюдаемый, как в следующей функции.
updateInspection(){
combineLatest(this.authService.user$, this.equipmentId$, this.inspectionToSubmit$).pipe(
switchMap(([user, equipmentId, form]) =>{
if(form == null) return;
return this.afs.collection('networks').doc(user.activeNetworkProfile.id).collection('companyProfiles').doc(user.activeCompanyProfile.id).collection('equipment').doc(equipmentId).set(JSON.parse(JSON.stringify(form))).then(success=>{
this.formToSubmit$.next(null);
}).catch(err=>{
this.formToSubmit$.next(null);
});
})
);
}
Я просто хочу убедиться, что я правильно использую наблюдаемые.Спасибо