什么取代了 Subject.prototype.hasObservers
What replaces Subject.prototype.hasObservers
在 RxJS 版本 4 中,Subjects 上的 hasObservers 方法似乎已被删除,我正在尝试迁移。如何迁移页面上未列出此方法删除。
hasObservers: function () { checkDisposed(this); return this.observers.length > 0; }
如果主题在调用 next 之前有订阅者,则获取布尔值的另一种解决方案是什么?
在 rxjs 5 中似乎没有这个功能的模拟。但是你可以添加你自己的:
Subject.prototype.hasObservers = function hasObservers() {
if (this.closed) {
throw new ObjectUnsubscribedError();
}
return this.observers.length > 0;
};
如果您查看源代码,observers
array is defined 您会发现它是一个 public 属性,因此您可以直接访问它:
import { Subject } from 'rxjs/Subject';
let s = new Subject();
s.subscribe(val => val);
s.subscribe(val => val);
console.log(s.observers.length > 0);
这会打印 true
.
在 RxJS 版本 4 中,Subjects 上的 hasObservers 方法似乎已被删除,我正在尝试迁移。如何迁移页面上未列出此方法删除。
hasObservers: function () { checkDisposed(this); return this.observers.length > 0; }
如果主题在调用 next 之前有订阅者,则获取布尔值的另一种解决方案是什么?
在 rxjs 5 中似乎没有这个功能的模拟。但是你可以添加你自己的:
Subject.prototype.hasObservers = function hasObservers() {
if (this.closed) {
throw new ObjectUnsubscribedError();
}
return this.observers.length > 0;
};
如果您查看源代码,observers
array is defined 您会发现它是一个 public 属性,因此您可以直接访问它:
import { Subject } from 'rxjs/Subject';
let s = new Subject();
s.subscribe(val => val);
s.subscribe(val => val);
console.log(s.observers.length > 0);
这会打印 true
.