私の角型コンポーネントの1つは、保持している番号にサブスクリプションを許可する必要があります。私はこの数字を観測可能なものに変えて他の人がそれを購読できるようにしようとしています。Rxjs観測可能なサブスクリプションが決して正確に公開されない
私の出版社が私の観察者が
this.historyComponent.getHistoricalCount()
.subscribe(count => {
if (count !== 0) {
console.log('new history timespan expanded: ', count);
this.historyCount = count;
this.retrieveHistoricalData();
}
});
のように見えるが、加入者が呼ばれることは決してありません
private countChanged = new BehaviorSubject<any>(null);
public historyTimespanChanged$ = this.countChanged.asObservable();
private publish() {
this.countChanged.next(this.count);
}
expandTimeSpan() {
this.count ++;
this.publish();
}
reset() {
this.count = 0;
this.publish();
}
getHistoricalCount() {
return Observable.of(this.count);
}
のように見えます。 誰かが私が間違っていることを見ることができますか?
私は好奇心が強いですが、 BehaviourSubjectはObservableではない? OPはそれにサブスクリプションを直接作成してはいけませんか? – adz5A
@ adz5Aです。 'as Observable'を介した真の' Observable'への変換はちょっと防御的です。それは、上流に値を送ることによって加入者が誤ってSubjectを汚染するのを防ぎます。 – concat