0
在API中,它被寫入'如果有這樣的值並且主題尚未終止,則返回主題的當前值。BehaviorSubject的getValue()的真正含義是什麼?
也就是說,我想知道getValue()返回訂閱和提交的值,或onNext()調用的值。
在API中,它被寫入'如果有這樣的值並且主題尚未終止,則返回主題的當前值。BehaviorSubject的getValue()的真正含義是什麼?
也就是說,我想知道getValue()返回訂閱和提交的值,或onNext()調用的值。
在您的圖中,subject.onNext(3)
只能從不同的線程調用,因爲subject.onNext(2)
尚未返回。但是,這是對被動合同的違反,因爲您不允許進行重疊調用(onNext/onComplete/onError)。雖然在很多情況下這種行爲不會造成傷害,但像.serialize()
這樣的運營商可以幫助將其重新規範化。
總之,在你的情況下,它不確定。
其實,你會得到3,因爲在內部保存的最新值'BehaviorSubject'是原子,但在其他方面的重疊,通話可能陷入困境的發射狀態向用戶,因此確實,這是一個未定義的行爲。如果沒有訂閱者,不會造成任何傷害,但是如果有來自同一線程的併發調用或重入onNext調用的機會,則仍然需要使用'.toSerialized()'。 – akarnokd