2016-10-04 40 views
1

我有一個行爲主題BehaviorSubject<MyModel>(new MyModel)。根據我所做的讀物,我瞭解到,無論何時對行爲主題進行訂閱,只要訂閱完成,訂戶就會獲得默認的MyModel對象。Rxjs:BehaviourSubject值發射

但是我對這個場景感到困惑,假設一些ClassA訂閱了行爲主題,然後在對它進行調整後發現了一個值。 ClassA已發出後,ClassB訂閱的主題,所以現在ClassB訂閱收到new MyModel()對象或最後發射的主題模型。

請讓我知道,如果需要進一步澄清。

+3

最後一個發射。 「BehaviorSubject」立即觸發新訂閱中最近發佈的值。 – drewmoore

+2

^^注意這是一般的主題**不是**,它專指「BehaviorSubject」。例如,一個'ReplaySubject'立即在新的訂閱中依次發送*所有先前發送的值。 – drewmoore

+0

我沒有'ReplaySubject',它的'BehaviourSubject'。我知道'ReplaySubject'如何工作 –

回答

2

這開始作爲一個評論,但變成了一個答案:

在你的情況下,例如ClassB將獲得由您ClassA實例發出的MyModel例如,您最初通過new MyModel()創建的。

一般來說,BehaviorSubject立即觸發新的訂閱單最近發射的價值 - 這種行爲是什麼定義一個BehaviorSubject - 對比,例如,一個ReplaySubject立即發出已迄今發出的每個都值新訂閱。

注意這很容易憑經驗證明: