Rxjs,Angular 订阅获得 "ObjectUnsubscribedError"

Rxjs, Angular subscription getting "ObjectUnsubscribedError"

我有一个服务定义了一堆 BehaviorSubject 顶级组件订阅的对象,数据来自后端,但它只是用数据填充主题组件订阅。我还使用 ngOnDestroy.unsubscribe() 已订阅的所有内容。

当我在顶级组件的级别下添加一个新组件时,问题就出现了,该组件也被注入了服务,也订阅了服务上的数据,并且还在内部取消订阅 ngOnDestroy .这在代码中看起来不错,但实际上它会导致一些错误。

有时在构建组件时,我会在其中得到一些 ObjectUnsubscribedError,据我所知,BehaviorSubject 我正在订阅一个 [=18] =] 属性 这似乎是错误的来源。

如果没有看到一些代码,很难确定,但听起来您是在 BehaviorSubject 上直接调用 .unsubscribe() 而不是 Subscription。考虑以下因素:

const source = new BehaviorSubject('some-value');
source.subscribe();
source.unsubscribe();
source.subscribe(); // <-- This line will throw ObjectUnsubscribedError

代替上面的方法,执行以下操作:

const source = new BehaviorSubject('some-value');
const subscription = source.subscribe();
// And when it's time to unsubscribe in ngOnDestroy...
subscription.unsubscribe();