我有一个关于响应式扩展的设计问题,以下是场景描述:
我有一个汽车对象,该汽车对象具有多个验证对象。每个验证对象都会向汽车类发送验证结果。验证结果可以是成功或错误。当验证发送错误时,我希望停止汽车;当同一验证发送成功时,我想重新启动汽车。
换句话说:
所有验证都不断向汽车发送验证结果。如果所有验证都发送成功,则希望汽车继续前进,但如果其中一个发送错误,则希望停止汽车,直到从该验证接收到成功为止。
我正在尝试使用响应式扩展来解决这个问题。
有什么想法吗?
谢谢
非常简单。如果你有一个叫做 xss
的 IEnumerable<IObservable<bool>>
(可以是可观测对象的数组或列表),那么你可以这样做:
IObservable<bool> combined =
xss
.CombineLatest()
.Select(xs => xs.Aggregate((b0, b1) => b0 && b1));