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 - Rx.Observable.groupBy 会清理空流吗?

javascript - 导入react的方式有什么问题

javascript - Observable 完成后返回单个对象

Angular 方向测试;单击元素不会触发单击文档

javascript - 如何使用 RxJs 异步加载图像并在所有加载后执行方法

observable - 创建一个延迟下一个值的 Observable

javascript - 从 JavaScript 到 MySQL 日期类型的日期格式

javascript - 在没有 ajax 调用的情况下使用带有 @HTML.BeginForm 的 formdata append

javascript - YouTube API的宽度,高度值应否用引号引起来?

javascript - 管道操作符 RXJS Angular 5 的顺序