一个 Observable() 可以处理两种情况下的订阅吗?

Can one Observable() handle the Subscribe for two situations?

我正在将响应式编程应用于 Unity3D 项目。

在 InputField 中输入一个字符可以启用该按钮,如果没有字符则禁用该按钮。 可以使用 UniRx.Observable 在一个流中处理此逻辑吗?

inputID.OnValueChangedAsObservable()
            .Where(x => string.IsNullOrEmpty(x) == false)
            .Subscribe(_ => buttonLogin.gameObject.SetActive(true));

inputID.OnValueChangedAsObservable()
            .Where(x => string.IsNullOrEmpty(x) == true)
            .Subscribe(_ => buttonLogin.gameObject.SetActive(false));

能否将这两种逻辑合二为一?

请回复。谢谢。

是的,您可以使用 Map 运算符。

http://reactivex.io/documentation/operators/map.html

"transform the items emitted by an Observable by applying a function to each item"

Where 替换为 Map,在地图运算符内部,您将收到 x 变量和 return 来自 [=14] 的布尔值=] 检查。该布尔值将作为订阅中的变量传入,您可以直接在 setActive 中使用。