我是为了考特琳·科鲁廷而做这件事的.从第6步到第7步,我应该更新此方法:
fun getPlantsWithGrowZone(growZone: GrowZone) = liveData {
val plantsGrowZoneLiveData = plantDao.getPlantsWithGrowZoneNumber(growZone.number) // db
val customSortOrder = plantsListSortOrderCache.getOrAwait() // network
emitSource(plantsGrowZoneLiveData.map { plantList ->
plantList.applySort(customSortOrder)
})
}
对于这一条:
fun getPlantsWithGrowZone(growZone: GrowZone) =
plantDao.getPlantsWithGrowZoneNumber(growZone.number) // db
.switchMap { plantList ->
liveData {
val customSortOrder = plantsListSortOrderCache.getOrAwait() //network
emit(plantList.applyMainSafeSort(customSortOrder))
}
}
代码实验室解释了第二个不同之处,即在映射中进行网络调用是安全的,因为它是缓存的.但我不明白为什么?