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

标签 javascript rxjs reactive-extensions-js

是否可以将单个可观察通量拆分为多个其他可观察量?

我的用例是一个用户可以提交的表单。提交操作在一个可观察对象中处理,并且在这个操作上,有一个验证器在监听。

submitAction.forEach(validate)

问题是我想将操作绑定(bind)到验证器检查的成功失败

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

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

无论如何,你会如何处理类似的情况?

最佳答案

是否可以只使用 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);

关于javascript - RxJS 在多个输出中拆分可观察序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24593632/

相关文章:

javascript - 在可观察的取消上执行函数

javascript - RxJS:具有中止功能的生产者-消费者

javascript - js函数内部函数并等待返回值

javascript - 如何在 sap.m.Page 中使用 BorderLayout?

http - 缺少可观察方法 RxJS 5.0.0-beta.0

rxjs - combineAll 不会在空数组上发出

javascript - Angular2 RxJS 得到 'Observable_1.Observable.fromEvent is not a function' 错误

javascript - 绑定(bind)到点击事件 - 事件只触发一次

javascript - 在 Firefox 中添加 App-Tab

angular - 可观察类型错误 : cannot read property of undefined