У меня есть следующее использование потоков rx js:
ngOnInit() {
combineLatest(
this.eventsService.subjectSearchDistribution.pipe(
tap((querySearch) => {
this.paginationService.setQuery(querySearch);
this.paginationService.reset();
}),
),
this.eventsService.subjectSortingDistribution.pipe(
tap((sortedList: ListItem[]) => {
this.paginationService.setSortBy(getSortingString(sortedList));
}),
),
this.eventsService.subjectFilterDistribution.pipe(
tap((filterUrl) => {
const page = 1;
this.paginationService.setFilterBy(filterUrl);
this.paginationService.setCurrentPage(page);
this.paginationService.calculateOffsetLimit(page);
}),
),
this.eventsService.subjectFilterDistributionReset.pipe(tap(() => this.paginationService.reset())),
).subscribe(() => {
this.loadPage();
});
}
Проблема в том, что мне нужно обрабатывать только один случай, только один поток и не вызывать другие, в результате вызывается this.loadPage();
.
Теперь, когда я отправляю сообщение на this.eventsService.subjectSearchDistribution
, this.eventsService.subjectSortingDistribution
, this.eventsService.subjectFilterDistribution
.
, я вижу, что вызов this.loadPage();
увеличивается с первого раза на +1 каждое событие.
ТАК, ТОЛЬКО один наблюдатель может быть активным, а не все вместе.
Как исправить?