是否有一个等同于任务的.Rx中的ContinueWith操作符

本文关键字:中的 ContinueWith 操作符 Rx 有一个 等同于 任务 是否 | 更新日期: 2023-09-27 18:03:02

是否有对应的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服务调用的失败

是否有一个等同于任务的.Rx中的ContinueWith操作符

是的,这叫做投影:

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 */);