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

时间:2014-07-06 07:27:17

标签: javascript rxjs reactive-extensions-js

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

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

submitAction.forEach(validate)

问题是我想将操作绑定到验证器检查的successfailure

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

我不确定在反应式编程中处理类似案例的情况如何 - 拆分observable可能不是处理此类问题的正确解决方案。

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

1 个答案:

答案 0 :(得分:12)

您可以使用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);