Rx中是否存在与Task.ContinueWith运算符等效的内容?
我在Silverlight上使用Rx,我使用FromAsyncPattern方法进行两次webservice调用,我想同时同时执行。
var o1 = Observable.FromAsyncPattern<int, string>(client.BeginGetData, client.EndGetData);
var o2 = Observable.FromAsyncPattern<int, string>(client.BeginGetData, client.EndGetData);
是否有运营商(如Zip)只有在 o1返回完成后才会启动/订阅o2 ? 我以相同的方式处理任一Web服务调用失败。
答案 0 :(得分:7)
是的,这叫做投影:
o1().SelectMany(_ => o2()).Subscribe();
答案 1 :(得分:6)
虽然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 */);