等待两个序列完成

时间:2017-09-02 11:46:48

标签: system.reactive

我有像

这样的代码
BusManager.OrderShouldBeCreated.Subscribe(orderShouldBeCreated =>BusManager.PublishAsync(new OrderCreated());
BusManager.PublishAsync(new OrderShouldBeCreated());

异步发布事件,然后它们推进我的BusManager序列(OrderShouldBeCreated,OrderCreated)。现在等待OrderCreated OnNext我在上面的调用之后使用了以下内容。

await Task.WhenAll(
BusManager.OrderShouldBeCreated.ToTask(),
BusManager.OrderCreated.ToTask());

我想尽可能使用普通的RX并以某种方式组成序列并删除Task.WhenAll和ToTask调用。

1 个答案:

答案 0 :(得分:0)

只需翻译你的内容,你最终会得到

await Observable.Merge(
    BusManager.OrderShouldBeCreated.LastAsync(),
    BusManager.OrderCreated.LastAsync()
)
    .Take(2);

为了进一步帮助您,您必须扩展您提供的内容。