在我的Angular应用程序的整个会话中,订阅多个RxJS可观测值会对性能产生什么影响



我正在开发一个Angular应用程序,我们希望在该应用程序中跟踪一些操作事件,以便进行一些报告。

目标之一是保持组件逻辑尽可能干净,并尽可能减少跟踪性能的影响

受ngrx效应的启发,我们可以选择实现这一点的一种方法是声明特定的跟踪器可观测值(使用RxJS,每个动作事件一个(,合并它们,并在应用程序启动时订阅合并后的可观测值(在整个会话中保持它的活力(。每个跟踪器过滤特定的动作事件
这种方式允许我们在组件中调度关于主题的动作事件,这些动作事件由跟踪器异步处理,而不是应用程序的流。

今天,我们有大约30个事件(因此有30个可观测值要合并(,但也许有一天会有数百个(数百个可观测量要合并(。

拥有这些RxJS可观察性对性能有什么影响
合并它们并只订阅一个会减少影响吗


编辑1:实践测试表明,合并和单一订阅对没有显著差异

如果您使用merge订阅所有它们,或者单独订阅每一个,实际上没有什么区别。这里唯一的区别是,您共享常见的行为,如错误和完整信号。

最新更新