我是新来的RX,我有我想要的场景工作良好,但在我看来,必须有一个更简单或更优雅的方式来实现这一点。我所拥有的是IObservable<T>
,我想以这样一种方式订阅它,最后触发一个IObservable<U>,
,触发一个异步操作,为每个它所看到的生成一个U.有没有更简单的方法让IObservable异步依赖另一个IObservable?
我有什么至今(即伟大工程,但似乎累赘)使用中间事件流是这样的:
public class Converter {
public event EventHandler<UArgs> UDone;
public IConnectableObservable<U> ToUs(IObservable<T> ts) {
var us = Observable.FromEvent<UArgs>(this, "UDone").Select(e => e.EventArgs.U).Replay();
ts.Subscribe(t => Observable.Start(() => OnUDone(new U(t))));
return us;
}
private void OnUDone(U u) {
var uDone = UDone;
if (uDone != null) {
uDone(this, u);
}
}
}
...
var c = new Converter();
IConnectableObservable<T> ts = ...;
var us = c.ToUs(ts);
us.Connect();
...
我敢肯定,我错过了一个更简单的方法吗这...
您确定要在这里重播吗? – 2011-02-09 09:31:34