我有一项服务,我想转变为rx observable
该服务的界面为
IEnumerable<Price> FetchUpdatedPrices()
{
//do work to return changed data since last update
}
我的想法是使用rx允许消费者订阅更新。实现将每隔x秒轮询服务并调用观察者。
我想出了以下
public IDisposable Subscribe(IObserver<IEnumerable<Price>> observer)
{
IObservable<IEnumerable<Price>> updatedPrices = Observable.Interval(new TimeSpan(0, 0, 1))
.Select(r => FetchUpdatedPrices());
return updatedPrices.Subscribe(observer);
}
问题是我希望观察者看到IObservable<Price>
而不是IObservable<IEnumerable<Price>>
任何人都可以给这个Rx noob指点如何做到这一点吗?
答案 0 :(得分:2)
SelectMany
怎么样?
IObservable<IEnumerable<Price>> updatedPrices = Observable.Interval(new TimeSpan(0, 0, 1))
.SelectMany(r => FetchUpdatedPrices());