是否有对应的Task ?ContinueWith操作符在Rx?
我使用Rx与Silverlight,我用FromAsyncPattern方法做两个web服务调用,我想做他们同步。
var o1 = Observable.FromAsyncPattern<int, string>(client.BeginGetData, client.EndGetData);
var o2 = Observable.FromAsyncPattern<int, string>(client.BeginGetData, client.EndGetData);
是否存在操作符(如Zip),仅在 o1返回Completed后才启动/订阅o2 ?
我以同样的方式处理两个web服务调用的失败
是的,这叫做投影:
o1().SelectMany(_ => o2()).Subscribe();
Alex是对的,另一种方法是:
Observable.Concat(
o1(4),
o2(6))
.Subscribe(x => /* Always one, then two */);
这保证了o2只在o1之后运行,而不是Merge,这会同时运行它们:
Observable.Merge(
o1(4),
o2(6))
.Subscribe(x => /* Either one or two */);