2016-11-11 3 views
0

Ich finde es schwierig, ein Thema zu komponieren oder beobachtbar, wo ich Validierung habe. Dies ist die Natur der funktionalen Programmierung, aber es scheint, dass die reaktive Programmierung nur für jedes Datenelement sorgt. Außerdem sind die Beispiele ein bisschen zu allgemein, kein reales Beispiel, das viele Aspekte abdeckt, obwohl dies eine persönliche Meinung ist.Push neue Observablen auf der Grundlage der Eingabe von vorherigen in RxJS

Ich würde gerne einen anderen Wert an den Beobachter senden, basierend auf dem vorherigen, aber ich kann nicht herausfinden, wie dies zu erreichen ist.

Rx.Observable.create(function(obs) { 
    obs.next(1) 
    // if value is one, compile 3, if not, respond with 2 
    obs.next(someVal) 
    obs.onCompleted() 
}); 

Antwort

1

Sie würden finden es einfaches Thema und Karte zu verwenden:

let src = new Subject<number>(); 
let other = src.map(v => (v === 1 ? 3 : 2)); 

other.subscribe(v => console.log(v)); 

src.next(1);// prints 3 
src.next(4);// prints 2 
+0

Wissen Sie, ob es irgendeine Push-basierte Methode, die ich verwenden könnte? Zum Beispiel würde ich einen anderen Beobachter Wert zu src.next basierend auf dem vorherigen –

+0

schieben Das ist genau das, was die Karte tun, es braucht eine beobachtbare und gibt eine neue zurück, die mit Werten von der ursprünglichen "gepushed" wird – Meir

+0

Meine Frage teilweise gelöst , aber ich frage mich, ob es eine Möglichkeit gibt, eine neue Nummer zu src.next basierend auf der Nummer zu schieben. Weißt du wie das möglich ist? –

Verwandte Themen