gpt4 book ai didi

javascript - RxJS Observable - 在订阅上附加主题消费者

转载 作者:行者123 更新时间:2023-12-01 01:12:27 24 4
gpt4 key购买 nike

我有一个 Angular 服务,它保留一个私有(private)的BehaviorSubject,以便它可以在任何给定时间读取该值。它是私有(private)的,因此任何使用它的组件都无法操作它。相反,常规的 Observable 被公开为公共(public)。 BehaviorSubject 现在是此可观察对象发出的任何数据的使用者。

public subheaderData$: Observable<SubheaderData>;
private subheaderDataSubject$: BehaviorSubject<SubheaderData> = new BehaviorSubject<SubheaderData>(null);

constructor(private repository: SubHeaderRepository) {
this.subheaderData$ = this.load();
this.subheaderData$.subscribe(this.subheaderDataSubject$);
}

如您所见,我正在从我的服务中调用 .subscribe,这使我的可观察值立即变得热门。我想要完成的是注入(inject)此服务的组件必须订阅公共(public) Observable,当发生这种情况时,BehaviorSubject 应该自动添加为观察者,即使组件不知道它(因为它是私有(private)的。

如何实现这一点?

最佳答案

在服务构造函数中执行此操作

this.subheaderData$ = this.subheaderDataSubject$.asObservable();

然后在需要时订阅subheaderData$

您可以在您的服务中this.subheaderDataSubject$.next(someValue)

关于javascript - RxJS Observable - 在订阅上附加主题消费者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55049321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com