【发布时间】:2019-06-03 11:45:07
【问题描述】:
以下代码无法编译:
override fun storeConnections(connections: List<Connection>): Observable<List<Connection>> =
Observable.fromCallable<List<Connection>> {
appDao.storeConnections(connections.map {
mapper.toDb(it)})
}
appDao.storeConnections 行表示如下错误:
必填清单!
找到单位
storeConnections 是使用 Room 完成的:
@Dao
interface RoomDao {
@Insert(onConflict = REPLACE)
fun storeConnections(linkedInConnection: List<LinkedInConnectionEntity>)
}
storeConnections 是从我的 rx 流中调用的:
val startPositions = BehaviorSubject.createDefault(0)
startPositions.flatMap { startPos -> App.context.repository.getConnections(startPos) }
.flatMap { connections -> Observable.fromCallable(App.context.repository.storeConnections(connections)) }
.doOnNext { ind -> startPositions.onNext(ind + 1) }
.subscribe({ ind -> println("Index $ind") })
如何正确实现 fromCallable?
【问题讨论】:
-
很难说除非你指定这个乐趣应该做什么。为什么
storeConnections会返回 obervable?它在观察什么? -
@TimCastelijns 这就是问题所在。 storeConnections 没有返回任何内容。但是我需要将它包装在一个 observable 中以便将它推到流中。所以也许我的问题是当 API 调用什么都不返回时,如何用 Observable 包装 API 调用。我见过的大多数示例都从 api 返回了一些东西。但是这个没有
-
我需要将它包装在一个 observable 中以便将其推送到流中。你能澄清一下吗?
-
函数
mapper.toDb(it)返回什么? -
我更新了我的问题并显示了调用 storeConnections 的代码。它在需要 Observable 的 flatMap 中使用 fromCallable 调用。