2017-09-02 3 views
0

を完了するために、私は非同期的に、彼らは私のBusManagerシーケンス(OrderShouldBeCreated、OrderCreatedを)進めるイベントを発行2つの配列が

BusManager.OrderShouldBeCreated.Subscribe(orderShouldBeCreated =>BusManager.PublishAsync(new OrderCreated()); 
BusManager.PublishAsync(new OrderShouldBeCreated()); 

のようなコードを持って待ってください。今すぐ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); 

で終わるでしょう、あなたが提供しているものを展開する必要があります。