Rx JS Microservice-Architecture: запрашивать API только один раз вместо X раз для каждого компонента - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть микросервис-ориентированный интерфейс (на основе angular), где каждый независимый компонент вызывает один и тот же API-интерфейс для поиска с одной и той же строкой. Теперь это приводит к дублированию данных во внешнем интерфейсе. У меня есть централизованный фасад, где я могу ввести синглтон. Возможно ли, чтобы я возвращал наблюдаемое каждому сервису, пока наблюдаемое еще не завершено, и в конце я запрашиваю Бэкенд с поисковым запросом только один раз вместо X раз (x число независимых компонентов)?

Ситуация:

>Search Term
----->Component X do Search --> asks API
----->Component Y do Search --> asks API
----->Component Z do Search --> asks API

Что я хочу достичь:

>Search Term
----->Component X do Search --> asks API
----->Component Y do Search --> get same Observable
----->Component Z do Search --> get same Observable

заранее спасибо:)

1 Ответ

0 голосов
/ 08 апреля 2020

Да, вы можете вызвать API один раз и использовать одну и ту же наблюдаемую в нескольких местах, используя publishReplay и refCount.

Проверьте этот пример

https://medium.com/angular-in-depth/fastest-way-to-cache-for-lazy-developers-angular-with-rxjs-444a198ed6a6

...