Я думаю, что вы почти у цели, просто подпишитесь на свою тему, и каждый раз, когда вы получаете от нее новое значение, запускайте Http-вызов.
Также вы правы, так как вам нужно подписаться, чтобы фактически активировать ваш http-вызов, вы будете вынуждены переподписываться каждый раз. Для оптимизации вы можете отслеживать свою подписку на HTTP-вызовы и отписываться от нее каждый раз, когда изменяются ваши параметры, поэтому вы не отслеживаете «старый» запрос.
Примерно так:
export class MyComponent implements OnInit {
parametersChange$: Subject;
httpSubscription: Subscription;
ngOnInit () {
this.parametersChange$.subscribe(params => {
if (this.httpSubscription) {
this.httpSubscription.unsubscribe();
}
this.httpSubscription = this.http.get(...).subscribe(// do your stuff);
});
}
}
Надеюсь, что поможет