Как связать Observable с Single в RxJava?

Я новичок в мире Rx, поэтому, пожалуйста, потерпите меня.

Мой код на Kotlin, но код Java также поможет.

У меня есть 2 метода, один из них загружает задачи из базы, если есть задачи, я хочу отправить их на сервер.

fun getListFromDb(): Single<List<TaskEntity>> {
    return taskEntityDao.getAll()
}

 fun syncTasks(localTasks: TaskSyncRequest): Observable<ApiResponse<List<TaskEntity>>> {
    return taskServices.syncTasks(localTasks)
}

Я знаю, что могу использовать плоскую карту для цепочки наблюдаемых, но просто не смог заставить ее работать между Single и Observables.


person SearchedBeforeAsking128    schedule 05.09.2018    source источник
comment
Вы ищете оператор flatMapObservable. Кроме того, если это сетевой вызов HTTP, почему он возвращает Observable? Было бы более ясным намерение, если бы вместо этого он возвращал Single.   -  person Ahmed Ashraf    schedule 05.09.2018
comment
Single обозначает один элемент, Observable - последовательность элементов. Похоже, ваш API должен возвращать сингл. В любом случае вы можете легко преобразовать наблюдаемое в одиночное, например, с помощью метода singleOrError()   -  person zella    schedule 05.09.2018
comment
Да, на самом деле это вызов модификации, и почти все примеры, которые они освещали, использовали наблюдаемые, а не одиночные, было бы лучше, если бы я изменил их на одиночные? если да, то это решит мою проблему прямо сейчас   -  person SearchedBeforeAsking128    schedule 05.09.2018
comment
Рекомендуемое чтение: github.com/ReactiveX/RxJava#continuations   -  person akarnokd    schedule 06.09.2018


Ответы (1)


Попробуйте использовать flatMapObservable Вы можете использовать этот метод для преобразования одиночного объекта в наблюдаемый;

person Vova Stelmashchuk    schedule 28.09.2018