RxJS在多个输出中拆分可观察序列

Sim*_*ias 10 javascript reactive-extensions-js rxjs

是否有可能在多个其他可观测量中分割出单个可观察通量?

我的用例是用户可以提交的表单.提交操作在可观察的情况下处理,并且在此操作中,有一个验证器正在侦听.

submitAction.forEach(validate)
Run Code Online (Sandbox Code Playgroud)

问题是我想将动作绑定到验证器检查success或者failure验证器检查.

validationFailure.forEach(outputErrors)
validationSuccess.forEach(goToPage)
Run Code Online (Sandbox Code Playgroud)

我不确定在反应式编程中如何处理类似的情况 - 分裂可观察性可能不是处理这类问题的正确解决方案.

无论如何,你会如何处理类似的案件?

Bra*_*don 13

你可以使用,mapfilter可能share避免重复执行验证逻辑吗?

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);
Run Code Online (Sandbox Code Playgroud)