私は、要求に基づいてN個の観測値を作成しなければならない状況があります。私はzipを使用して、観測数の既知の数を結合できることを理解しています。しかし、私は未知数の観測値をどのように組み合わせることができるか理解していません。RxJavaでObservablesの不明な数を結合する
私が明らかにしていない部分がジップする機能です。 Observableの数に応じて、N個の引数をとるラムダを作成する必要があります。
すべてのオブザーバブルが、異なるタイプのオブジェクトを返します。
私は、要求に基づいてN個の観測値を作成しなければならない状況があります。私はzipを使用して、観測数の既知の数を結合できることを理解しています。しかし、私は未知数の観測値をどのように組み合わせることができるか理解していません。RxJavaでObservablesの不明な数を結合する
私が明らかにしていない部分がジップする機能です。 Observableの数に応じて、N個の引数をとるラムダを作成する必要があります。
すべてのオブザーバブルが、異なるタイプのオブジェクトを返します。
あなたがリストとして、あなたの観測は、一般的なタイプのオブジェクトを返すようにそれをマージして処理することができます
class Result1 implements Result
class Result2 implements Result
class REsult3 implements Result
for(Observable o : yourObservableList)
resultObservable.mergeWith(o) //use concat() if you need serial execution
resultObservable
.toList()
.doOnNext(results -> {
//process your results (List<Result>)
}
.subscribe(...)
observable to mergeメソッドのリストを渡すことさえできます。 –
申し訳ありませんが、私の間違い。 'mergeWith'でなければなりません。私は私の答えを編集しました。 –
をあなたは少し考えて説明するだろうこれは、いくつかのコードを追加してください。ここで何を達成しようとしているのかははっきりしていません。 – koperko
これらのオブザーバブルとは何ですか?また、いくつのアイテムが生成されますか? 'zip(Observable>、FuncN)'オーバーロードを見てきましたか? –
akarnokd
ありがとう@akarnokd。私はジップを見た。この問題は、リクエストによって観測可能数が決まるため、ジップに使用可能な観測データの数が不明であることが原因です。 3つの観測値がある場合は、N個の観測値がある場合は3つのパラメータを受け入れるラムダを作成し、次にN個のパラメータを持つラムダを作成します。実行時には保守可能ではなく決定されます。 –