我是新來的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