BACK
ПрактикаReal-life: shareReplay() HTTP cache
ПРАКТИКА · 62 · 練

Real-life: shareReplay() HTTP cache

API должен вызваться один раз, а оба подписчика получить cached значение.

  1. Решите задачу в редакторе без длинной теории.
  2. Запустите проверку и сравните вывод с ожидаемым.
  3. Если застряли, откройте решение и перенесите подход в свой код.
Решение spoiler · click to reveal
const { defer, of, shareReplay } = Rx;

let calls = 0;
const api$ = defer(() => {
  calls += 1;
  return of('api-' + calls);
}).pipe(
  shareReplay({ bufferSize: 1, refCount: false })
);

api$.subscribe(value => console.log('A:' + value));
api$.subscribe(value => console.log('B:' + value));
script.ts // TypeScript
CONSOLE · Console Output
Нажмите на запуск, чтобы увидеть результат...