2016-08-05 28 views
13

önce rxjs5 bir BehaviorSubject geçerli değerini alır.basit bir şekilde adı BehaviorSubject bir metot bulunmadığından <strong>rxjs4</strong> içinde

Bu yöntem, rxjs5'da artık mevcut değildir.

Bu yüzden bir BehaviorSubject değerini almak için bulunan tek çözümdü:

let value; 
myBehaviorSubject.take(1).subscribe((e) => value = e); 

eşzamanlı Bu kod çalıştırma (Ben tam olarak neden anlamıyorum, ama öyle ...) ve değeri elde . İşe ama getValue() mevcut olsaydı gerektiği kadar temiz değil: getValue()rxjs5 yılında

let value = myBehaviorSubject.getValue(); 

çıkarıldı Neden ve bu soruna en temiz çözüm nedir?

+9

'BehaviorSubject' arabirimi sadeleştirildi - alıcı yalnızca" .value "olarak adlandırıldı. –

+0

@arturgrzesiak Geçerli belgedeki bu değer için herhangi bir başvuru bulamadım: http://reactivex.io/rxjs/class/es6/BehaviorSubject.js~BehaviorSubject.html – Clement

+2

Belgeler güncel olmayabilir, ancak hala çalışıyor. Buraya da bir göz atın: http://reactivex.io/rxjs/test-file/spec-js/subjects/BehaviorSubject-spec.js.html#lineNumber47 –

cevap

23

Yorumlar içinde artur grzesiak tarafından belirtildiği gibi, BehaviorSubject arabirimi temizlendi ve alıcı şimdi yalnızca .value.

Sadece bunu bir yanıt olarak eklemek istedim çünkü neredeyse yorumları orijinal soruya okumadım ve doğru cevabı kaçırmış olurdum.