我需要迭代数据,并向API请求数据以进行更新。我无法执行此操作,因为数据位于LiveData中,我的方法位于存储库中,因此我无法在此处进行观察。
您看到任何解决方案了吗?
我暂时用map方法编写方法
val chaptersWithProgress = ArrayList<ChapterProgressItem>()
Transformations.map(_database.bookWithChaptersDao.fetchBooks()) { list ->
list.forEach { book ->
Transformations.map(_database.bookWithChaptersDao.fetchChaptersForBook(book.id)) { chapters ->
chapters.forEach {
chaptersWithProgress.add(ChapterProgressItem(it.id, it.progress))
Log.d(TAG, "chapter: $it")
}
}
_bookApi.updateBookChaptersProgress(book.id, ChapterProgressMap(chaptersWithProgress))
chaptersWithProgress.clear()
}
}