Mei*_*ome 1 action system.reactive
我有两个采用Action回调的异步方法.我想知道Rx是否有针对行动的扩展?
我的目标是等到两个回调被调用然后进行一些处理?
这是来自Jesse和我即将出版的书,但是你走了,这是一个免费赠品:
public Func<T1, IObservable<TRet>> FromCallbackPattern<T1, TRet>(Action<T1, Action<TRet>> originalMethod)
{
return new Func<T1, IObservable<TRet>>((param1) => {
var subject = new AsyncSubject<TRet>();
try {
return originalMethod(param1, (result) => {
subject.OnNext(result);
subject.OnCompleted();
});
} catch (Exception ex) {
subject.OnError(ex);
}
return subject;
});
}
Run Code Online (Sandbox Code Playgroud)
以下是您使用它的方式:
// Here's a sample method that follows the callback pattern
public void DownloadPageTextAsync(string url, Action<string> callback);
var dlPageRx = FromCallbackPattern(DownloadPageTextAsync);
dlPageRx("http://www.jesseliberty.com")
.Subscribe(pageText => Console.WriteLine(pageText));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
272 次 |
| 最近记录: |