Angular напрямую возвращает API-запросы и shareReplay - PullRequest
0 голосов
/ 13 сентября 2018

Меня смущает вопрос о возврате внешних звонков в сервисах Angular. В официальных документах они, кажется, немедленно возвращают вызовы http.get из службы (https://angular.io/guide/styleguide#services) например:

 getHeroes() {
   return this.http.get('api/heroes').pipe(
   map((response: Response) => <Hero[]>response.json()));
 }

Однако я бы хотел добавить функцию shareReplay, чтобы вызов выполнялся только один раз.

Я сделал стек-блиц, чтобы описать ситуацию более четко.

Полагаю, мой вопрос в том, является ли это правильным способом возврата такой наблюдаемой:

https://stackblitz.com/edit/angular-kwkwcx

1 Ответ

0 голосов
/ 13 сентября 2018

вы можете использовать предмет поведения для хранения кеша

cachedData=new BehaviorSubject(null)

getNormalData () {
    return this.http.get('https://swapi.co/api/people/1')
    .pipe(tap(cachedData.next));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...