2017-09-02 68 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); 

爲了進一步幫助你,你就必須擴大你提供什麼。