2017-09-02 54 views
0

我有一个像等待两个序列完成

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调用。

+0

对此有一个[mcve]会很棒。你能从基本的可观察事物中创建一个简单的例子来说明你的需求吗? – Enigmativity

+0

我很抱歉,我下次尝试更好,需要很长时间去解耦。我可以理解我的问题有点抽象。我希望在我深入探索RX的时候,我会尽快改进。 –

回答

0

从你所拥有的只是翻译,你最终会与

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

为了进一步帮助你,你就必须扩大你提供什么。