Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Future.sequence(..) в скале и ??? в RXjava / 5 сообщений из 5, страница 1 из 1
22.11.2020, 14:53
    #40021084
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Future.sequence(..) в скале и ??? в RXjava
Собссно вопрос. в скалке много и часто были кейсы с коллекциями врдое

Future[List[Future[T]]] там есть прекрасная приблуда чтоб свернуть List[Future[SomeObj]] -> Future[List[SomeObj]]
и дальше уже с ним что то там где надо делать. стильно модно реактивно

сейчас делаю кусок кода на рхджаве. там местами очень похожие подходы. НО. я уже 2 часа бьюсь не могу нигде найти пример похожей штуки но с обсервабл или синглом

суть List<Observable<SomeObj>> -> Observable<List<SomeObj>> или List<Single<>> -> Single<List<>>

я вот не вкачу никто так не делает потому что не надо, или кроме как через блокинггет этого не сделать у них на джаве?
...
Рейтинг: 0 / 0
22.11.2020, 15:41
    #40021088
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Future.sequence(..) в скале и ??? в RXjava
я в этом ничего не понимаю :) , но по описанию похоже на forkJoin или zip в rxjs, т.е. дождаться выполнения всех Observable и скомбинировать их результат, так? Если да, то вроде гуглится легко - там есть вариант с массивом

Код: java
1.
2.
3.
4.
List<Observable<SomeObj>> obsList = ....

Observable.zip(obsList, (arrayOfResults) -> todo склеить)
.subscribe(result -> System.out.println(result));



еще вариант с flatMap есть, но не берусь судить, какой здесь лучше/правильней, ибо видеть не видывал эту rxjava и уж тем более скалу :)

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public Observable<Obj> whenAll(List<Observable<Obj>> tasks) {
    return Observable.from(tasks)
            //execute in parallel
            .flatMap(task -> task.observeOn(Schedulers.computation()))
            //wait, until all task are executed
            //be aware, all your observable should emit onComplemete event
            //otherwise you will wait forever
            .toList()
            //could implement more intelligent logic. eg. check that everything is successful
            .map(results -> true);
}
...
Рейтинг: 0 / 0
22.11.2020, 20:38
    #40021164
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Future.sequence(..) в скале и ??? в RXjava
блин как всегда :)
спасибо друг!

второй вариант что надо.

странно второй вариант видел, но чуть в другой интерпретации. твоя то что надо.
...
Рейтинг: 0 / 0
23.11.2020, 10:54
    #40021277
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Future.sequence(..) в скале и ??? в RXjava
блин второй вариант по ходу блокирующий. таж петрушка только в профиль.
...
Рейтинг: 0 / 0
23.11.2020, 11:09
    #40021282
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Future.sequence(..) в скале и ??? в RXjava
с первым вариантом где туду склеить не понял что атм склеивать. зип обычно заюзан чтоб слить два листа в один лист используя последовательно по индексу объекты из первого и второго листов. не совсем понимаю причем тут он.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Future.sequence(..) в скале и ??? в RXjava / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]