1) У меня есть метод Наблюдаемый> moviesWithoutGenres(), который возвращает список фильмов, но поле жанры фильма является нулевойОбъединение двух наблюдаемых без использования ToList() из-за SQLBrite под капотом
2) У меня есть метод Наблюдаемый> movieGenres (Movie m), который возвращает список жанров для указанного поля
Мне нужно реализовать метод, который должен возвращать Observable>, и каждый фильм в списке будет иметь список жанров.
Я реализовал такой поток, но мое решение использует преобразование в Observable, используя Observable.from(), а не Observable>, используя оператор toList(). Это решение неприемлемо, поскольку я использую оболочку SQLBrite для реактивных запросов sql под капотом первого метода. OnCompleted не вызывается, поскольку потоки всегда остаются открытыми, так что изменения в таблицах sql могут быть распространены среди всех подписчиков. Таким образом, оператор toList не может быть выполнен.
public class Movie {
private String id;
private String title;
private List<String> genres;
...
}
1) Observable<List<Movie>> moviesWithoutGenres();
2) Observable<List<String>> movieGenres(Movie m);
Должны быть реализованы:
Observable<List<Movie>> movies();
Спасибо за ответ. Это решение предоставляет список с одним фильмом, несмотря на то, что на линии «Observable.from (movies)» много фильмов. Я понятия не имею, что может вызвать эту проблему. –
Использование «concatMap()» вместо «switchMap()» по какой-то причине разрешило эту проблему. Не могли бы вы обновить ответ? –
ах хороший звонок. Измененный! – Anstrong