Android rxJava несколько ответов - PullRequest
0 голосов
/ 28 июня 2018

Я использую архитектуру MVVM с rxjava и пытаюсь получить один ответ на пару запросов, но он ничего не делает, даже не выдает ошибки

Метод запроса в DAO

@Query("SELECT * FROM Notes WHERE type =:type")
fun getNotes(type: String): Single<List<Note>>

LocalDataSource

class NotesLocalDataSource private constructor(
        private val notesDao: NotesDao
) : NotesDataSource {

    override fun getNotes(): Single<Notes> {
        return Single.zip(
                notesDao.getNotes("typeOne"),
                notesDao.getNotes("typeTwo"),
                notesDao.getNotes("typeThree"),
                notesDao.getNotes("typeFour"),
                Function4 { t1, t2, t3, t4 ->
                    Notes(t1,t2,t3, t4)
                })
    }

NotesDataSource

interface NotesDataSource {

    fun getNotes() : Single<Notes>

}

Примечания Модель

data class Notes(val typeOne: List<Note>, val typeTwo: List<Note>, val typeThree: List<Note>, val typeFour: List<Note>)

Respository

class NotesRepository(
        private val notesLocalDataSource: NotesDataSource
) : NotesDataSource {

override fun getNotes(): Single<Notes> {
        return notesLocalDataSource.getNotes()
    }
}

ViewModel

notesRepository.getNotes().map {
    Log.e("TAG","Notes: $it")
}

1 Ответ

0 голосов
/ 28 июня 2018

Вы должны subscribe() к этому потоку, чтобы начать производство предметов.

Просто вызовите subscribe() функцию внутри ViewModel или Fragment / Activity

...