有些 observables 实在太需要了。他们希望你听,听,听他们要说的一切,也许永远!如果我真的只能处理几秒钟的事件怎么办?我可以写类似的东西吗
mouseMoves.TakeFor(TimeSpan.FromSeconds(2))
从概念上讲,这将创建一个主题,该主题将传递事件直到某个时间过去,然后取消订阅底层可观察对象并将其自己的序列标记为完成。我怀疑您可以手动编写它,但似乎必须有一些现有的运营商这样做。我曾希望那Observable.TimeOut
会做我想做的事,例如使用
mouseMoves.Timeout(TimeSpan.FromSeconds(2), Observable.Empty<T>())
但我认为如果观察之间的时间跨度长于给定值,它正在做的是超时观察。这也很有用,但不是我所追求的。