Когда мы точно знаем, сколько наблюдаемыми у нас есть свои точные типы, и мы хотим, чтобы пронестись мы делаем как этотRxJava молния с vararg наблюдаемых
Observable<String> data1 = Observable.just("one", "two", "three", "four", "five");
Observable<String> data2 = Observable.just("one", "two", "three", "four", "five");
Observable<String> data3 = Observable.just("one", "two", "three", "four", "five");
Observable.zip(data1, data2, data3, (a, b, c) -> a + b + c);
мы используем фиксированный рассуждение функциональный интерфейс, который принимает 3 аргумента ... и в этом случае он работает нормально.
, но если мы знаем, что у нас есть N номеров Observable<T>
, где T
- это тот же самый тип, как мы его застегнем? потребитель Funtion может быть то, что занимает T...
, но я не вижу какой-либо способ осуществить это ...
UPDATE
Практическая проблема, я пытаюсь решить здесь является то, что у меня есть некоторое количество из Observable<T>
и я хочу forkJoin тех, и выбрал только один T
в конце испускать ...
Представьте несколько наблюдаемых непосредственно излучающих T
, что я хочу взять и сравнить и испускают только один с таким мне другой наблюдаемый ...
РЕШЕНИЕ
Как сказал в ответе есть зип, который принимает итератор и функцию, пример кода выглядит следующим образом
Observable<String> data1 = Observable.just("one", "two", "three", "four", "five");
Observable<String> data2 = Observable.just("one", "two", "three", "four", "five");
Observable<String> data3 = Observable.just("one", "two", "three", "four", "five");
List<Observable<String>> iter = Arrays.asList(data1, data2, data3);
Observable.zip(iter, args1 -> args1).subscribe((arg)->{
for (Object o : arg) {
System.out.println(o);
}
});
, который будет производить
one
one
one
two
two
two
three
three
three
four
four
four
five
five
five
Есть ли способ ограничить почтовый индекс временем? например, если первые два испущенных значения, но более секунды прошло, он отбрасывает текущий zip и ждет еще одной партии значений ...? в nutshel, чтобы убедиться, что все значения, которые прибыли, были в определенные сроки ... – vach
Не знаю. Сожалею. : P –
@vach Это интересный вопрос, смогли ли вы узнать, возможно ли это? – wkarl