Допустим, у меня есть тема, представляющая страницы в разбиваемой на страницы таблице:
pageCount$
Затем я передаю это в новую переменную, которая передается в API для получения данных. для таблицы:
const tableData$ = pageCount$.pipe(switchMap(pageCount => getTableData(pageCount)));
Это прекрасно работает, каждый раз, когда я посылаю новую страницу tableData$
выдает данные для этой страницы.
Теперь здесь возникает проблема и вопрос sh, чтобы решить.
На моей странице я также буду sh, чтобы использовать эти данные таблицы для отображения средних значений того, что они в настоящее время содержат. Поэтому я подумал, что мог бы просто передать tableData$
через карту, которая выполняет эти средние значения.
const averageData$ = tableData$.pipe(map(data => performAverages(data)));
Это работает, но потому что каждый раз, когда я подписываюсь на каждую переменную, это создает новую Например, мой вызов API происходит дважды. Один раз для подписки tableData$
и один раз для подписки averageData$
. Однако, я понимаю, что такое поведение разработано специально.
Такое ощущение, что я хочу использовать какой-то оператор tap / fork, но я не думаю, что такой оператор существует.
Возможно ли это вообще? выполнить эти задачи, совершая вызов API только один раз?
Спасибо