2014-07-06 21 views
6

Ist es möglich, einen einzelnen beobachtbaren Fluss in mehrere andere Observablen aufzuteilen?RxJS split beobachtbare Sequenz in mehreren Ausgaben

Mein Anwendungsfall ist ein Formular, das ein Benutzer einreichen kann. Die Submit-Aktion wird in einer beobachtbaren Weise gehandhabt, und bei dieser Aktion gibt es einen Validator, der zuhört.

submitAction.forEach(validate) 

Die Sache ist, ich will entweder die success oder failure des Prüfers Scheck an Aktionen binden.

validationFailure.forEach(outputErrors) 
validationSuccess.forEach(goToPage) 

Ich bin mir nicht sicher, wie ähnliche Fälle in reaktiver Programmierung behandelt werden - es kann, dass die beobachtbare Aufspalten sein ist einfach nicht die richtige Lösung, um diese Art von Problem für die Handhabung.

Wie auch immer, wie würden Sie mit einem ähnlichen Fall umgehen?

Antwort

9

Können Sie einfach map und filter verwenden, möglicherweise mit share, um die wiederholte Ausführung der Validierungslogik zu vermeiden?

var submitAction = // some Rx.Observable 
var validationResult = submitAction.map(validate).share(); 
var success = validationResult.filter(function (r) { return !!r; }); 
var failure = validationResult.filter(function (r) { return !r; }); 

success.subscribe(goToPage); 
failure.subscribe(outputErrors); 
+0

Danke, das war genau das, was ich gesucht habe! – David

Verwandte Themen