是否可以在多个其他可观测量中分割出单个可观察通量?
我的用例是用户可以提交的表单。提交操作在可观察的情况下处理,在此操作中,有一个验证器正在侦听。
submitAction.forEach(validate)
问题是我想将操作绑定到验证器检查的success
或failure
。
validationFailure.forEach(outputErrors)
validationSuccess.forEach(goToPage)
我不确定在反应式编程中处理类似案例的情况如何 - 拆分observable可能不是处理此类问题的正确解决方案。
无论如何,你会如何处理类似的案件?
答案 0 :(得分:12)
您可以使用map
和filter
,可能使用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);