Извлечь каждый элемент из списка массивов в RxJava

Как я могу заставить каждого пользователя из Observable<ArrayList<user>> обрабатывать некоторые другие наблюдаемые объекты, прежде чем подписчик подпишется на него. Я искал его в переполнении стека и узнал о flatMapIterable(), но все равно не работает. Как мне это сделать в Rxjava2? Подскажите кто нибудь..


person Mattwalk    schedule 30.01.2018    source источник
comment
Что у вас есть до сих пор? Что вы подразумеваете под процессом с некоторыми другими наблюдаемыми?   -  person akarnokd    schedule 30.01.2018
comment
Мне нужно получить каждую информацию о пользователе из базы данных. Я буду делать эти вещи в методе Flatmap, где я создам второй наблюдаемый объект для сбора каждой информации о пользователе с моего сервера.   -  person Mattwalk    schedule 30.01.2018


Ответы (1)


Это похоже на типичную ситуацию с плоской картой:

Observable<ArrayList<User>> users = ...

users.flatMapIterable(list -> list)
     .flatMap(user -> db.getUserDetails(user))
     .subscribe(user -> { /* ... */ }, Throwable::printStackTrace);
person akarnokd    schedule 30.01.2018
comment
flatmapIterable() здесь не сработает, так как принимает список типа User. - person Mattwalk; 31.01.2018
comment
Вы действительно пробовали это? В чем ошибка компиляции? - person akarnokd; 31.01.2018