В моем приложении Angular я выполняю следующую процедуру:
- OnInit при отсоединении абонента от предметного вызова (SubjectOne)
при появлении нового данные, поступающие из SubjectOne,
и если какое-либо условие проверено; я повторно использую эти данные для запуска второго вызова, который является http-вызовом из сервисного вызова.
Вот мой код
MyComponent.ts:
ngOnInit() {
this.getFirstTreatment();
}
getFirstTreatment() {
this.subscriptionOne = this.myService.subjectOne.subscribe((data) => {
this.myValue = data['myValue'];
this.getSecondTreatment(data['myValue'])
})
}
getSecondTreatment(thatValue) {
if(thatValue >= 100){
this.subscriptionTwo = this.myService.sendToBackend(thatValue).subscribe((response)=>{}
}
}
MyService.ts
sendToBackend(thatValue){
let newValue = someFormatingnMethod(thatValue)
return this.httpClient.post(url , newValue );
}
Моя цель - как мне динамически закрыть subscriptionTwo , чтобы оно не было вызывается n раз после каждого получения новых данных от субъекта.
NB: mySubject может заметить некоторые новые данные даже до уничтожения композита
Я пытался использовать switchMap
, но, похоже, он не работает правильно
Предложения?