11

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

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

submitAction.forEach(validate)

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

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

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

无论如何,您将如何处理类似的情况?

4

1 回答 1

14

您可以使用andmap来避免重复执行验证逻辑吗?filtershare

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);
于 2014-07-10T19:39:01.500 回答