【发布时间】:2020-04-24 07:25:18
【问题描述】:
假设我有一个代表可分页表中页面的主题:
pageCount$
然后我将其通过管道传输到一个新变量中,该变量通过 API 获取表的数据:
const tableData$ = pageCount$.pipe(switchMap(pageCount => getTableData(pageCount)));
这很好用,每次我发出一个新页面时,tableData$ 都会发出该页面的数据。
现在问题和我想解决的问题来了。
在我的页面上,我还希望使用该表数据来显示它当前包含的平均值。所以我想我可以将tableData$ 通过一个执行这些平均值的地图来传递。
const averageData$ = tableData$.pipe(map(data => performAverages(data)));
这可行,但是因为每次我订阅每个变量它都会创建一个新实例,所以我的 API 调用会发生两次。一次用于tableData$ 订阅,一次用于averageData$ 订阅。不过,我理解这种行为是设计使然。
感觉就像我想使用某种分叉/叉子运算符,但我不认为这样的运算符存在。
是否有可能在只调用一次 api 的同时执行这些任务?
谢谢
【问题讨论】:
标签: javascript rxjs