enter image description here我使用BehaviorSubject
在我的应用程序组件之间共享数据,由于BehaviorSubject
多次发射相同值,所以我遇到了性能问题。例如,我调用http从后端获取团队对象并将其存储在behaviorSubject中,许多组件都订阅了此BehaviorSubject
。每个组件都从订阅获取值,并对值进行一系列操作。问题的实质是,该值会发出多次,并且每个组件都会多次执行所有序列。我的猜测是BehaviorSubject
发出的值是订阅者数。我在Google中找不到对我来说很奇怪的东西,我想念什么?
与部署相比,团队在本地产生价值的次数有所不同。您可以看到打印的“ refref返回值”是来自http的实际响应。
答案 0 :(得分:0)
您可以通过仅接受不同于上一个值的值来部分修复它,从而连续跳过几次对相同值的求值。
此外,如果您查询的数据可以与之前的查询相同,则最好还是添加以下内容:
import { distinctUntilChanged } from 'rxjs/operators';
this.myService.myObservable
.pipe(distinctUntilChanged())
.subscribe(value => {
console.log(value);
})