Я нашел эту статью, которая объясняет, как я могу использовать Rx Js для создания наблюдаемой для автозаполнения: https://blog.strongbrew.io/building-a-safe-autocomplete-operator-with-rxjs
const autocomplete = (time, selector) => (source$) =>
source$.pipe(
debounceTime(time),
switchMap((...args: any[]) =>
selector(...args)
.pipe(
takeUntil(
source$
.pipe(
skip(1)
)
)
)
)
)
term$ = new BehaviorSubject<string>('');
results$ = this.term$.pipe(
autocomplete(1000, (term => this.fetch(term)))
)
Я хочу улучшить эту автоматически завершаемую наблюдаемость, сначала возвращая данные из локального хранилища и отображая их пользователю, а затем продолжайте на сервер для получения данных. Данные, которые будут возвращены с сервера, не заменят данные, полученные из локального хранилища, но будут добавлены к нему. Если я правильно понимаю каждый раз, когда пользователь печатает, то наблюдаемый должен испускать дважды.
Как я могу построить его наиболее эффективным способом? С уважением, Тал Хуми