query() {
сonsole.log('query');
}
let search$ = new BehaviorSubject('');
let x = search$
.distinctUntilChanged()
.do(() => console.log('search called!'))
.mergeMap(() => query());
x.subscribe(data => console.log('data'));
x.subscribe(data => console.log('data'));
x.subscribe(data => console.log('data'));
x.subscribe(data => console.log('data'));
query
data
query
data
query
data
query
data
Затем если изменияется поиск
search$.next('asd');
Снова выводит
query
data
query
data
query
data
query
data
Проблема в том, что каждый раз летит 4 запроса (сколько subscribe столько и запросов)
Как сделать так, что бы при изменении search$ метод query() вызывался ОДИН раз и отрабатывали все коллбеки?